"Uncaught TypeError:无法读取属性'apply'of undefined"使用Bootstrap-Switch Jquery

Jac*_*ham 3 javascript jquery twitter-bootstrap

我正在使用:http://www.bootstrap-switch.org/并收到上述错误.基本上我正在尝试这样做,以便当用户开始在表单字段中输入时,切换从"关闭"切换到"打开".

HTML:

 <div class="row">

    <div class="col-sm-2 pull-right toggle">
      <input name="assessment[answer][tracking]" type="hidden" value="0" /><input class="trackable" data-on-text="Yes" data-off-text="No" data-on-color="success" type="checkbox" value="1" name="assessment[answer][tracking]" id="assessment_answer_tracking" />
    </div>

    <div class="col-sm-10 question">
        <textarea class="form-control" name="assessment[answer][content]" id="assessment_answer_content">
        </textarea>
     </div>

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

JS:

<script>

  $("[name='my-checkbox']").bootstrapSwitch();
  $(".trackable").bootstrapSwitch();

  $('.form-control').on("click paste", function(event){
         $("[name='my-checkbox']").bootstrapSwitch('setState', true);
   });

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

有任何想法吗?

编辑 - Callstack:

Uncaught TypeError: Cannot read property 'apply' of undefined
  (anonymous function) @ bootstrap-switch-174a86fa717c568c8ba0a257ad07ce25.js?body=1:682
  jQuery.extend.each @ jquery-42fea4da63227b267ff49e07abf47db0.js?body=1:385
  jQuery.fn.jQuery.each @ jquery-42fea4da63227b267ff49e07abf47db0.js?body=1:137
  $.fn.bootstrapSwitch @ bootstrap-switch-174a86fa717c568c8ba0a257ad07ce25.js?body=1:674
  (anonymous function) @ new?utf8=?&assessment[patient_id]=1&assessment[user_id]=1&assessment[template_id]=2&commit=Create+A…:1114
  jQuery.event.dispatch @ jquery-42fea4da63227b267ff49e07abf47db0.js?body=1:4666
  elemData.handle @ jquery-42fea4da63227b267ff49e07abf47db0.js?body=1:4334
Run Code Online (Sandbox Code Playgroud)

Fab*_*ano 6

我也有同样的问题.似乎引导开关有一个错误.如果您只想将其从"关闭"切换为"打开",则可以将其应用于您的代码:

$('.form-control').on("click paste", function(event){
     $("[name='my-checkbox']").each( function(){
         if ( ! $(this).bootstrapSwitch('state')) { //check if is not checked
              $(this).bootstrapSwitch('toggleState'); //change the checkbox state
         }
     });
});
Run Code Online (Sandbox Code Playgroud)

方法setState似乎有问题,然后如果你检查每个复选框的状态,然后在任何条件下切换它,你可以得到相同的结果.

要将其切换为关闭,只需删除否定条件"!".这个解决方案对我有用.

  • 这为我修好了 (2认同)