首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用gem 'jquery-validation-rails‘验证AJAX请求的表单

如何使用gem 'jquery-validation-rails‘验证AJAX请求的表单
EN

Stack Overflow用户
提问于 2018-08-14 17:09:48
回答 1查看 1.1K关注 0票数 1

我在Gemfile中有gem 'jquery-validation-rails'

包含在application.js文件//= require jquery.validate

然后,我使用函数/脚本将验证添加到某些字段,如下所示:

代码语言:javascript
复制
// Field names from FORM
function validateCampaignForm(){
   var $form = $('form.user_form');
   $form.validate({
      rules: {
         "user[title]": {required: true, maxlength: 80},
         "user[content]": {required: true, maxlength: 80},

         }
    });
}
// Load
validateCampaignForm();


// Save button on click
$('a.save-form').on('click', function(){
  // should validates field
});

生成的HTML表单:

代码语言:javascript
复制
<form class="user_form" action="/users/1110212666" accept-charset="UTF-8" method="post" novalidate="novalidate">
  <div class="row">
    <label>Title</label>
    <input class="required" type="text" value="We saved your cart" name="user[title]" id="user_title">
  </div>
  ...other fields....

  <a class="button primary save-form" href="#">Save Settings</a>
</form>

为了测试,我尝试将Save (链接)更改为submit类型的按钮:

并检查表单提交。

代码语言:javascript
复制
   $('form.campaign_form').on('submit', function(){
      $('form.campaign_form').valid();
      console.log($('form.campaign_form').valid()); // returns TRUE not false even fields with validations are empty
      return false; // just to prevent normal form submission
   });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-14 17:20:10

要消除在表单中使用提交按钮的需要,请使用.valid()触发验证

代码语言:javascript
复制
<form class="campaign_form" action="/users/1110212666" accept-charset="UTF-8" method="post" novalidate="novalidate">
  <div class="row">
    <label>Title</label>
    <input class="required" type="text" value="We saved your cart" name="user[title]" id="user_title">
  </div>
  ...other fields....

  # IMPORTANT NOTE: <a> or other elements aside from button type="submit" can only trigger the validation. 
  // <a class="button primary save-form" href="javascript:;">Save Settings</a>
  <button type="submit" class="save-form">Save Settings</button>
</form>

使用jquery-validate进行验证

代码语言:javascript
复制
// initializes validation
 $('.user_form').validate({
    rules: {
       "user[title]": {required: true, maxlength: 80},
       "user[content]": {required: true, maxlength: 80}
       }
  });

// on click validation of user form
$('.save-form').on('click', function(e){
  e.preventDefault(); // to prevent form from normal submission
  $('.user_form').valid();
});

// other way (catch on form submission)
$('form.campaign_form').on('submit', function(e){
  e.preventDefault();
  $('.user_form').valid();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51837750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档