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

Dri*_*ood 1 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>
Run Code Online (Sandbox Code Playgroud)

当用户选择单选按钮时,下面的表单向下滑动.我需要做的就是添加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>
Run Code Online (Sandbox Code Playgroud)

我正在使用它来滑下来

<script>
$('#accordion').click(function() {
  $('#slider').slideDown('slow', function() {

  });
});

$('#accordionup').click(function() {
  $('#slider').slideUp('slow', function() {

  });
});

</script> 
Run Code Online (Sandbox Code Playgroud)

谢谢.

Val*_*sel 5

试试这个:

$("#mce-group-5-1").change(function() {
    $("#mce-MMERGE1-state").toggleClass('required');
});
Run Code Online (Sandbox Code Playgroud)

您可以在选择器中添加更多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
    }
});
Run Code Online (Sandbox Code Playgroud)

查看JSFiddle上的完整演示(使用复选框而不是单选按钮).

希望这可以帮助.

  • `$("input [id ^ = req _]")`是一个通配符选择器.它基本上意味着"所有"输入"具有以"req_"开头的ID的元素,因此您唯一需要做的就是在表单的隐藏部分中为所有必需字段的ID加前缀. (2认同)