让验证在已删除字段的表单中工作
Get validation to work in form where fields have been removed
我尽量让这个保持简单,不好意思,如果它很乱…
我用jQuery/JS在wordpress站点上为表单构建了一个自定义验证(不要问为什么)。一般的想法是,我有一个数组,它要检查输入字段的ID。所以这个列表是:
toValidate=new Array();
toValidate[0]="#name";
toValidate[1]="#location";
toValidate[2]="#method";
,它用$.each(toValidate)循环它们,然后如果它们是空的,就会弹出一个窗口,并做一些其他的事情,比如为字段添加红色边框。现在所有这些都很好。但我还有另一个问题。我有几个总是必需的字段,但我也有一个复选框,当他们选中它时,TR应该被删除,TR中有几个字段是必需的,如果可见
现在的问题是,即使我单击复选框,因此删除TR,我也无法使其工作,因此不再需要删除TR的必填字段。我已经尝试了多种方法,但根据我尝试的解决方案,不断得到不同的问题。
我所尝试的一个例子是改变数组,以便如果他们选中框,它会删除一对数组对象(那些在被删除的行中)。但它不起作用,它只是表现得好像它们还在那里。
对不起,让这个长,但我想问的是什么将是最好的做法在这里做什么?你会怎么做?我不想要代码,只是一个关于我应该如何计划它的一般想法,因为我卡住了。
编辑:我忘了说,我使用数组的方式也可能是一个毫无价值的想法,所以任何关于如何改进它并使其工作的想法都是值得赞赏的。
与其在javascript中添加/删除可见性,不如在css中完成。它将在验证时简化选择器。
css:table tr.ignore {
visibility: hidden;
}
javascript: $('input.hide_thing').click(function() {
$('tr.whatever_tr').toggleClass('ignore', !$(this).checked)
});
验证器:
$('tr:not(.ignore)').validate();
可以先检查元素是否可见。
$.each(toValidate, function(index, element) {
if (!$(element).is(':visible')) return;
// ... proceed to validate
});
相关文章:
- 如何防止回车键提交表单,但仍然允许回车工作
- JavaScript表单验证-“;“错误”;不按需要工作
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 当阻止Enter键提交AJAX表单时,关注下一个输入是't工作
- jQuery preventdefault提交表单没有'通过js函数提交表单时无法工作
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- Ajax表单数据phpPOST不工作
- 表单验证工作不正常,在不检查条目的情况下继续
- JavaScript表单返回,但无法正常工作
- 如何使setTimeout脚本在html表单中正常工作
- 表单验证在接近尾声时停止工作
- 为什么不是'当试图使用Ajax和外部PHP文件发布内容时,我的表单工作不正常,该文件接收两个字符串
- html5表单工作不正常
- .单击“不为动态加载的表单工作”
- 提交表单工作不正常
- 使jquery函数跨多个表单工作.(将Jquery设为DRY)
- 不能让JS表单工作
- HTML表单工作不正常
- 在禁用javascript的情况下使注册表单工作
- 我如何在谷歌表单脚本编辑器中设置var主题,以返回表单/工作表中指定字段的值