我有一个表格,我正在使用jquery / mail黑猩猩。
如果选中单选按钮,表单的一部分将被隐藏并显示(使用Jquery Slide())。
每件事都很有效。
问题:
表单设置用于验证隐藏的部分。但是,有些用户不会总是检查单选按钮,这意味着表单会出现故障,因为隐藏的表单不会被验证,因为它们没有填写。
是否有任何机构对此有任何解决方法?
这是代码。
触发器(显示表单的其余部分。)
<div id="accordionup">
<li>
<input name="group[5]" type="radio" id="mce-group-5-1" value="32"checked="checked" />
<label for="mce-group-5-1">No
</li>
</div>
当用户选择单选按钮时,下面的表单向下滑动。我需要它做的是将class="required"
添加到一对(这也是关键)并非所有向下滑动的字段。所以基本上是某种条件/ if语句。
<div id="accordion">
<div class="mc-address-group">
<li class="statefield">
<label for="mce-MMERGE1-state">State:</label>
<input type="text" value="" maxlength="20" name="MMERGE1[state]" id="mce-MMERGE1-state" class="" />
</li>
<li class="zipfield">
<label for="mce-MMERGE1-zip">Zip Code:</label>
<input type="text" value="" maxlength="10" name="MMERGE1[zip]" id="mce-MMERGE1-zip" class="" />
</li>
<li class="countryfield">
</div>
我正在使用它来下滑
<script>
$('#accordion').click(function() {
$('#slider').slideDown('slow', function() {
});
});
$('#accordionup').click(function() {
$('#slider').slideUp('slow', function() {
});
});
</script>
谢谢。
答案 0 :(得分:5)
试试这个:
$("#mce-group-5-1").change(function() {
$("#mce-MMERGE1-state").toggleClass('required');
});
您可以在选择器中添加更多ID,以逗号分隔。 .toggleClass()
将检查所选元素是否具有指定的类。如果它有,它将删除它,如果没有,它将添加它。
您似乎正在使用jQuery Validate插件,因此您可以使用.rules()
添加和删除规则,如下所示:
$("#mce-group-5-1").change(function() {
if ($(this).is(":checked")) {
$("#mce-MMERGE1-state").rules("add", "required");
} else {
$("#mce-MMERGE1-state").rules("remove"); // remove all validation rules
}
});
在JSFiddle上查看complete demo(使用复选框而不是单选按钮)。
希望这有帮助。