Jquery表单验证 - 使用if语句进行验证?

时间:2010-10-06 19:52:36

标签: jquery

我有一个表格,我正在使用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> 

谢谢。

1 个答案:

答案 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(使用复选框而不是单选按钮)。

希望这有帮助。