Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未通过jquery选中复选框_Javascript_Jquery_Html - Fatal编程技术网

Javascript 未通过jquery选中复选框

Javascript 未通过jquery选中复选框,javascript,jquery,html,Javascript,Jquery,Html,在我的.html <div class="col-md-9 col-sm-9 col-xs-12"> <div class=""> <label> <input type="checkbox" id="SMSCheckbox" class="js-switch" /> SMS </la

在我的
.html

        <div class="col-md-9 col-sm-9 col-xs-12">
                <div class="">
                  <label>
                    <input type="checkbox" id="SMSCheckbox" class="js-switch" /> SMS
                  </label>
                </div>
                <div class="">
                  <label>
                    <input type="checkbox" id="EmailCheckBox" class="js-switch" /> Email
                  </label>
                </div>
              </div>
bySMS=true
byEmail=true
我检查了我的控制台,它确实进入if
true
分支,但不知何故,我的复选框没有被选中。奇怪的是,我在JSFIDLE上测试了它,并且它运行正常

这个奇怪问题的原因可能是什么

我不确定切换复选框是否重要,我不得不点击措辞。单击开关不会切换开关


我总是使用。当更改checked属性因某种原因无效时,请单击复选框(),不确定这是否是正确的方法。

我创建了一个小函数来为您处理它:

$.fn.setCheckbox = function(value) {
  var checked = $(this).attr("checked") != "undefined" &&
    ($(this).attr("checked") === "checked" ||
      $(this).attr("checked") === true);
  if (checked != value) {
    $(this).click();
  }
}

Plunker:

$(文档)上。准备好了吗
如果在JSFIDLE中隔离代码时该代码有效,那么该代码就不是问题所在。但是,您没有通过MS设置
或通过电子邮件设置
可能是一个范围问题,我没有在函数中设置这些变量。我正在从php文件获取值。我已经测试过它确实从我的控制台输出中运行到了真正的分支行。
$.fn.setCheckbox = function(value) {
  var checked = $(this).attr("checked") != "undefined" &&
    ($(this).attr("checked") === "checked" ||
      $(this).attr("checked") === true);
  if (checked != value) {
    $(this).click();
  }
}