5

我正在使用jQuery validation plugin, 进行表单验证。但是我无法为div.

这是我到目前为止尝试过的

HTML:

<form id="form">
  <div id="location" name="location"></div>
</form>

JS:

$('#form').validate({
            rules: {
            isLocationEmpty: true;
            }
});

自定义验证方法:

$.validator.addMethod('isLocationEmpty', function (value, element) {        
    var loc = $('#location').text();
    return (loc != "")
}, 'REQUIRED.');

我以前没有做过,请提供您的建议。

4

2 回答 2

10

引用操作:

“我正在使用 jQuery Validation 插件进行表单验证......但是我无法为 . 设置验证div。我以前没有这样做过,请提供您的建议。”

您将永远无法使用 jQuery Validate 插件来验证div. 数据输入的正确 HTML 标记是使用输入元素。

该插件仅适用于以下类型的数据输入元素(每个元素都必须具有唯一的name属性),这些元素也必须位于form元素容器中:

<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。这是一个非常丑陋的解决方法。

可用于将文本复制divtype="hidden"元素中的代码,然后可以使用插件验证隐藏的元素。可以随时调用此代码,也可以将其放置在事件处理程序中以在模糊或更改时触发:

$("#hidden").val( $('#div').text() );

这是相应的jQuery:

$('#form').validate({
    ignore: [], // <-- validate hidden elements
    // other options, rules, and callbacks,
});
于 2013-09-26T17:28:44.473 回答
-1

我不确定您为什么要尝试验证 div,但我建议将其设为 textarea。如果您需要让用户“无法”进行编辑,请添加 readonly 属性。

<form id="form">
  <textarea id="location" name="location" readonly></textarea>
</form>
于 2013-09-26T14:18:17.147 回答