Javascript jQuery验证:提交前是否在验证后删除元素?
我有一个城市的SVG地图,单击该地图时,会在我的表单中的div中创建隐藏元素 我正在使用来验证我的表单 为了确保用户单击了地图的某个区域,我想在普通隐藏元素所在的位置创建一个虚拟隐藏元素,并将验证规则放在其中。我编写了自己的验证规则来检查隐藏元素的数量(表示用户单击了地图上的某个位置)。规则是这样的:Javascript jQuery验证:提交前是否在验证后删除元素?,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我有一个城市的SVG地图,单击该地图时,会在我的表单中的div中创建隐藏元素 我正在使用来验证我的表单 为了确保用户单击了地图的某个区域,我想在普通隐藏元素所在的位置创建一个虚拟隐藏元素,并将验证规则放在其中。我编写了自己的验证规则来检查隐藏元素的数量(表示用户单击了地图上的某个位置)。规则是这样的: $.validator.methods.zones = function (value, element, param) { return ($('#search_form #zone-se
$.validator.methods.zones = function (value, element, param) {
return ($('#search_form #zone-selectors input').length > 1); // 1 instead of 0 to account for the dummy element
};
<div id="zone-selectors">
<input type="hidden" name="dummy">
</div>
。。。但这似乎创建了一个无限循环,并且我的浏览器超时了脚本。我做错了什么?提交者需要调整一下,如下所示:
submitHandler: function(form) {
$(form).find('input[name=dummy]').remove();
form.submit();
}
调用jQuery触发器会再次导致验证,并导致无限循环……您希望在此处调用本机函数。当上述答案不起作用时,这似乎对我有效。可能与jQuery和jQuery验证版本有关
submitHandler: function(form) {
$('input[name=dummy]', form).remove();
form.submit();
}
现在表格根本没有提交。。。?但是隐藏的元素被删除了,因此我知道正在调用
submitHandler
。@neezer-表单是否有操作?还是你想通过ajax提交?@nick它有一个动作。我想要一个普通的提交,而不是Ajax提交。@neezer-你有我能看到的页面的链接吗?@nick-当然,一旦我发布了链接,我就无法重现这个问题。看起来很有效。谢谢
submitHandler: function(form) {
$('input[name=dummy]', form).remove();
form.submit();
}