【问题标题】:Jquery input validation dependent on checkbox valueJquery输入验证依赖于复选框值
【发布时间】:2015-08-14 15:20:45
【问题描述】:

我试图避免验证混乱并使用内联验证。我有一个复选框,后面跟着三个输入框。如果选中该复选框,则输入字段必须变为“必填”。否则没有。

代码如下:

<div class="col-xs-12">
    <div class="form-group">
        <label class="checkbox-inline">
        <input type="checkbox" id="vi" name="vi" checked="checked">
            I have Apple
        </label>
    </div>
</div>

<div class="col-xs-6">
    <div class="form-group">
        <label>Apple condition?</label> 
        <input type="input" class="form-control" id="appleCond" validate="required:'checkbox[name=vi][value=Yes]:checked'">
    </div>
</div>

<div class="col-xs-6">
    <div class="form-group">
        <label>Sourced from ?</label> 
        <input type="input" class="form-control" id="appleSource" validate="required:'checkbox[name=vi][value=Yes]:checked'">
    </div>
</div>

<div class="col-xs-6">
    <div class="form-group">
        <label>Quantity</label> 
        <input type="input" class="form-control" id="appleQuantity" validate="required:'checkbox[name=vi][value=Yes]:checked'">
    </div>
</div>
</div>

我确定我的语法有问题。谁能指出正确的语法?

【问题讨论】:

    标签: jquery html checkbox


    【解决方案1】:

    为除复选框 div 之外的其他 div 指定类,例如“check_1”。

    html:

     <div class="col-xs-12">
        <div class="form-group">
            <label class="checkbox-inline">
                <input type="checkbox" id="vi" name="vi" />
                I have Apple
            </label>
        </div>
    </div>
    
    <div class="col-xs-6 check_1">
        <div class="form-group">
            <label>Apple condition?</label> 
            <input type="input" class="form-control  input_val" id="appleCond" validate="required"/>
        </div>
    </div>
    
    <div class="col-xs-6 check_1">
        <div class="form-group">
            <label>Sourced from ?</label> 
            <input type="input" class="form-control input_val" id="appleSource" validate="required"/>
        </div>
    </div>
    
    <div class="col-xs-6 check_1">
        <div class="form-group">
            <label>Quantity</label> 
            <input type="input" class="form-control  input_val" id="appleQuantity" validate="required"/>
        </div>
    </div>
    
    <div>
        <input type="button" value="submit" id="button_submit"/>
    </div>
    

    js:

    var check_box=0;
    $(".check_1").hide();
    
    
     $('#button_submit').click(function() {
        if(check_box==true)
        {
    
            $(".input_val").prop('required',true);
    
    
    
        }
         else
         {
            // code when checkbox not selected
         }
    
    });
    
    
    $('input[name="vi"]').click(function() {
    
            if ($(this).is(':checked')) {
               $(".check_1").show();
                check_box=true;
            }
        else{
                 $(".check_1").hide();
                check_box=false;
        }
    });
    

    check it here

    【讨论】:

    • 我需要在提交表单时验证文本框。上述解决方案与它有何关系?
    【解决方案2】:

    嗯,这可以按如下方式完成。默认将复选框设为未选中并在jquery 后面写入

        $(document).ready(function(){
          var atLeastOneIsChecked = $('input[name="vi"]:checked').length > 0;
           if(atLeastOneIsChecked){
            $("input").attr("required", "true");
          }
        else {
            // else do what you need to do with this case
        }
    });
    

    【讨论】:

    • 还有 32 个其他输入框未链接到此复选框。所以 if(atLeastOneIsChecked){ $("input").attr("required", "true"); } 将不起作用。
    • 所以只需对问题进行更改。会尽力帮助你的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 2021-09-07
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    相关资源
    最近更新 更多