Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery验证:提交前是否在验证后删除元素?_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript jQuery验证:提交前是否在验证后删除元素?

Javascript jQuery验证:提交前是否在验证后删除元素?,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我有一个城市的SVG地图,单击该地图时,会在我的表单中的div中创建隐藏元素 我正在使用来验证我的表单 为了确保用户单击了地图的某个区域,我想在普通隐藏元素所在的位置创建一个虚拟隐藏元素,并将验证规则放在其中。我编写了自己的验证规则来检查隐藏元素的数量(表示用户单击了地图上的某个位置)。规则是这样的: $.validator.methods.zones = function (value, element, param) { return ($('#search_form #zone-se

我有一个城市的SVG地图,单击该地图时,会在我的表单中的div中创建隐藏元素

我正在使用来验证我的表单

为了确保用户单击了地图的某个区域,我想在普通隐藏元素所在的位置创建一个虚拟隐藏元素,并将验证规则放在其中。我编写了自己的验证规则来检查隐藏元素的数量(表示用户单击了地图上的某个位置)。规则是这样的:

$.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();
}