一、对于要验证的字段,最好加上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 }