我正在使用jQuery验证插件,用于表单验证.但是我无法为div设置验证.
这是我到目前为止所尝试的
HTML:
<form id="form"> <div id="location" name="location"></div> </form>
JS:
$('#form').validate({ rules: { isLocationEmpty: true; } });
CustomValidation Mehthod:
$.validator.addMethod('isLocationEmpty',function (value,element) { var loc = $('#location').text(); return (loc != "") },'required.');
我以前没有这样做,请提供您的建议.
解决方法
引用OP:
“I’m using jQuery Validation plugin for my form validation…. However I’m unable to set the validation for a
div
. I haven’t done this prevIoUsly,please provide your suggestions.”
您永远无法使用jQuery Validate插件来验证div.数据输入的正确HTML标记是使用输入元素.
此插件仅适用于以下类型的数据输入元素(每个必须具有唯一的名称属性),这些元素也必须位于表单元素容器中:
<form> <!-- // Input - Also including the varIoUs HTML5 input types // type = text,password,radio,checkBox,file,etc. --> <input type="text" name="something" /> <!-- Hidden Input - 'ignore: []' must be defined in the options --> <input type="hidden" name="hide" /> <!-- Select Dropdown --> <select name="foobar"> ... </select> <!-- Text Area Box --> <textarea name="barfoo"></textarea> </form>
另请参阅文档中的“参考”页面:http://jqueryvalidation.org/reference/
显然OP无法改变HTML.这是一个非常丑陋的解决方法.
可用于将div文本复制到type =“hidden”元素的代码,然后可以使用插件验证隐藏元素.此代码可以随时调用,也可以放在事件处理程序中,以便在模糊或更改时触发:
$("#hidden").val( $('#div').text() );
这是相应的jQuery:
$('#form').validate({ ignore: [],// <-- validate hidden elements // other options,rules,and callbacks,});