关于jquery.validate.js的几点

一、对于要验证的字段,最好加上name属性,经测试,没加name属性的字段有时候不参与验证。

二、对于只有一个验证规则的字段,可直接写在元素的class属性中,如非空验证,只需写成class="required"。

 <textarea id="embody" style=" 80%;" name="embody" rows="5" data-link="embody" class="required"></textarea>

三、对于一个字段有多个验证规则,有两种方式处理

     1、直接写在元素的class属性中,如 class="{"requied":true,"maxlength":"50"}",这种方式需要引入jquery.metadata.js

          这种方式是在网上看到的,反正我是没测试成功。所以采用的下面的方式。

     2、在页面加载时,定义验证规则,如我要验证邮件标题不能为空,且长度不能超过50个字符。emailForm是我包在emtitle元素外的form标签。

//设置验证
        $("#emailForm").validate({
            rules: {
                emtitle: { required: true, maxlength: "50" },//标题长度不能超过50个
            }
        });

四、jquery.validate.js默认是不对hidden、disabled的元素验证的。如果你要对这样的元素加验证规则。需要改掉jquery.validate.js的代码,还有就是像我下面这样做,也可以解决。

       我的邮件接收人是个input元素,是只能通过按钮选择发送人,不能直接输入。      

 <input type="text" id="emto" data-link="emto" class="required" name="emto"  style=" 75%; color: black" disabled="disabled" />

     因为我加了disabled="disabled"属性,所以直接使用class="required"是无法使该元素参与验证的。

     所以在保存前的验证时,我先设置disabled为true,使它能参与验证,验证完后,马上又恢复为false。在用户看来,这个元素仍然是始终不能输入的,这样也就达到效果。

    看第2行和第5行。

1 //validate.js不会对disabled的元素验证。所以验证时,先改为可用,验证完后,再改回来
2         $("#emto").attr("disabled", false);
3         //如果输入验证不通过,则阻止提交
4         if (!$("#emailForm").valid()) {
5             $("#emto").attr("disabled", true);
6             return;
7         }

     

原文地址:https://www.cnblogs.com/wilasi/p/3818712.html