【发布时间】:2015-09-08 15:12:15
【问题描述】:
以下是我的表单,其中包含两组复选框列表。
<form id="my-form">
<input type="checkbox" class="unknown-name-1" name="unknown-name-1[]" value="Bike"> I have a bike<br>
<input type="checkbox" class="unknown-name-1" name="unknow-name-1[]" value="Car"> I have a car<br>
<input type="checkbox" class="unknown-name-1" name="unknow-name-1[]" value="_other" data-target-text-input="text-input-other-option-unknow-name-1"> Others
<input type="text" id="text-input-other-option-unknow-name-1" class="unknown-name-1" name="unknown-name-1[]">
<input type="checkbox" class="unknown-name-2" name="unknow-name-2[]" value="House"> I have a house<br>
<input type="checkbox" class="unknown-name-2" name="unknow-name-2[]" value="Apartement"> I have an apartement<br>
<input type="checkbox" class="unknown-name-2" name="unknow-name-2[]" value="Vila"> I have a vila<br>
<input type="checkbox" class="unknown-name-2" name="unknow-name-2[]" value="_other" data-target-text-input="text-input-other-option-unknow-name-2"> Others
<input type="text" id="text-input-other-option-unknow-name-2" class="unknown-name-2" name="unknow-name-2[]">
</form>
每个复选框的所有类或 ID 或名称都是动态的,这意味着我不知道在呈现视图时每个属性的值是什么,也不是复选框列表的组数,而是两个上面的组将用作代码 sn-p 的示例。
验证规则:
每个复选框列表都需要至少一个选项才能被选中。最后一个选项是_other,如果选中此选项,则其输入字段为必填项。
我花了几个小时用JavaScript 编写动态验证器,但我仍然无法完成。我希望你们中的一些人可以帮助我!如何使用JavaScript、not in jQuery 编写可以检查这些条件的动态验证器?注意: checkboxlist 可以有一组、二组、三组或更多组,每个 checkbox 的所有属性的值都是事先未知的。如有必要,可以在复选框中添加更多属性,但它们的值需要是动态的。
【问题讨论】:
-
您能告诉我们您已经拥有的任何验证码吗?您是否只是想验证是否检查了值(如果需要,输入字段已完成),或者您是否关心验证这些值是一组预期的值(即未更改)?换句话说,这些值真的很重要,还是您只是想验证输入状态?
-
为什么不给他们添加第二个静态类,其唯一目的是验证?
-
否则我唯一能想到的就是有一个带有全局变量 isChecked 的 .each() 循环,如果你看到一个 true,你将变量设置为 true 并中断。 (PS 你需要一个 if 语句来检查复选框与文本字段)
-
您是在获取 JSON 并将其传递给创建表单的组件还是获取 HTML?
-
对您来说,是否可以为每个组维护 div。这样您就可以通过 div 名称/id/类检查每个组的选中字段。
标签: javascript validation checkboxlist