检查是否选中复选框时出现问题

Nid*_*ida 0 javascript jquery

我在jquery中编写了以下函数

<script>
    function validateAppliesTo()
    {
        if ($("#collapseCat_row input:checkbox:checked").length > 0)
        {
            return true;
        } else
        {
            swal({
                title: "",
                text: "Please select any course for which the fee should apply! "
            });

            return false;
        }

        if ($("#accordion_cat input:checkbox:checked").length > 0)
        {
            return true;
        } else
        {
            swal({
                title: "",
                text: "Please select any category! "
            });

            return false;
        }

        return true;
    }
</script>
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于#course_condition_row但对#accordion_cat不起作用.

在HTML中

<div class="panel panel-default">
    <div class="panel-heading">
        <h5 class="panel-title">
            <a data-toggle="collapse" data-parent="#accordion_cat" href="#collapseCat">Category</a>
        </h5>
    </div>
    <div id="collapseCat" class="panel-collapse collapse in">
        <div class="panel-body">
            <input name="student_category[]" class="cls_categories" id="General" value="3" type="checkbox">&nbsp;General<br>
            <input name="student_category[]" class="cls_categories" id="Reserved" value="4" type="checkbox">&nbsp;Reserved<br>
        </div>
    </div>

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

我想验证表单.如果在类别中没有选择任何复选框,那么它应该返回false ...

请帮我!!!

Jas*_*elf 5

一旦validateAppliesTo()函数达到a return,该函数的其余部分将不会被激活.因此,只处理第一个if/else而不处理第二个if/else.

在下面的代码中,我删除了return's并更改了if()语句.

删除退货

删除return's'将确保运行所有代码.

chaning if()语句

如果未选中任何复选框,.length则返回0,该if()语句在语句中等于true.通过!在声明前加上它将扭转这一结果.简而言之:如果找不到复选框,请输入此if()语句.

我也改#accordion_cat#collapseCat这样的JS相匹配的提供HTML.

结果

结果是,swal()如果没有选中复选框,则现在调用代码两次.我不知道这个函数应该做什么,但要注意它被调用两次,并且第二次可能会覆盖第一次调用它时的结果.

 
$(function() {


  $( "#validate" ).click(function() {
  validateAppliesTo()
  });
  
  function validateAppliesTo()
    {
        if (!$("#collapseCat_row input:checkbox:checked").length)
        {
            swal({
                title: "",
                text: "Please select any course for which the fee should apply! "
            });
        }

        if (!$("#collapseCat input:checkbox:checked").length)
        {
            swal({
                title: "",
                text: "Please select any category! "
            });
        }

    }
    
    function swal(obj){
      console.debug('do swal with', obj);
    }

});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="panel panel-default">
    <div class="panel-heading">
        <h5 class="panel-title">
            <a data-toggle="collapse" data-parent="#accordion_cat" href="#collapseCat">Category</a>
        </h5>
    </div>
    <div id="collapseCat" class="panel-collapse collapse in">
        <div class="panel-body">
            <input name="student_category[]" class="cls_categories" id="General" value="3" type="checkbox">&nbsp;General<br>
            <input name="student_category[]" class="cls_categories" id="Reserved" value="4" type="checkbox">&nbsp;Reserved<br>
        </div>
    </div>

</div>

<button id="validate">Validate</button>
Run Code Online (Sandbox Code Playgroud)