客户端验证 jquery 插件不起作用

Posted

技术标签:

【中文标题】客户端验证 jquery 插件不起作用【英文标题】:Client validate jquery plugin doesn't work 【发布时间】:2012-11-13 18:33:27 【问题描述】:

我使用路径 assets\javascripts\jquery.validate.js (rails 3.2) 上的 jquery 插件进行客户端验证。但它不起作用。我的表格:

update_name_phone_city_user_registration_path, :html => :id => "form_edit_name", :method => :put , :remote => true) 做 |f| %> 10%> “提交”%>

我的 application.js 文件:

//= require jquery
//= require jquery_ujs
//= require bootstrap-modal
//= require_tree .


$(document).ready(function() 

$("#form_edit_name").validate(
   debug: true,
   rules: 
      "user[name]": 
        required: true,
        minlength: 2
      ,
    "user[name]": 
      required: 'Your username is required',
      minlength: 'The minimum number of characters is 2'
     

     alert("ok");
   );

);

怎么了?

UPD 1 生成的 HTML 代码

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap-modal.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.validate.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>


<form accept-charset="UTF-8" action="/users" class="edit_user" id="form_edit_name" method="post">
<div><label for="user_name">Name</label><br />
        <input id="user_name" name="user[name]" size="30" type="text" value="" /></div>
</form>

【问题讨论】:

【参考方案1】:

假设您正在验证这样的测试输入

<input type="text" id="name" name="name" />

试试这个

$("#form_edit_name").validate(
       debug: true,
       rules: 
          "name":  required: true, minlength: 2 ,
       messages: 
        "name": 
          required: 'Your username is required',
          minlength: 'The minimum number of characters is 2'
         
      
    );

【讨论】:

@Stack Stack 你的 html 是什么样的? 我怀疑有一个带方括号的名称将适用于 jquery。 我认为,模式窗口有问题。 我通过 ajax 以模态方式加载了我的表单。从模态窗口中删除表单后,一切正常。【参考方案2】:

解决方案似乎是将名称值放在引号中。

$("#form_edit_name").validate(
   debug: true,
   rules: 
      "user[name]":  required: true, minlength: 2 ,
   messages: 
      "user[name]": 
       required: 'Your username is required',
       minlength: 'The minimum number of characters is 2'
     
  
);

看 jQuery Validator Plugin on Ruby on Rails 3?了解详情。

【讨论】:

以上是关于客户端验证 jquery 插件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如果用户输入了空格或换行符,则 JQuery 验证不起作用

jQuery 验证插件在 WordPress 中不起作用

jQuery 验证插件。回发后errorLabelContainer不起作用

jQuery 验证插件不起作用

jquery验证动态表单输入的插件不起作用

使用 Angular js 验证 jquery 下拉插件不起作用