2014-05-08 86 views
0

當我運行此代碼時,onClick下的if語句會在view.checked == true時計算,但else在view.checked == false時不計算。該警報顯示view.checked似乎正常工作。不知道發生了什麼事。我使用這兩個插件:JavaScript If語句有效,但Else不會

https://datatables.net/與fnFilter插件

http://wenzhixin.net.cn/p/multiple-select

作爲一個側面說明,也試圖找出爲什麼我的。加入()方法添加空格。

var checked = []; 
var checkedreg = ''; 
$(document).ready(function() { 
    rtable = $('#ropes').dataTable({ 
     "ajax": "data/ropes.txt", 
     "dom": 'C<"clear">lfrtip', 
     "columns": [ 
      { "data": "brand" }, 
      { "data": "model" }, 
      { "data": "length" }, 
      { "data": "dia" }, 
      { "data": "price" }, 
      { "data": "drytreat" }, 
      { "data": "midmark" }, 
      { "data": "bipat" }, 
      { "data": "falls" }, 
     ], 
    }); 
    $('select').multipleSelect({ 
     onClick: function(view) { 
     checkedreg = ''; 
     alert(view.checked); 
     if (view.checked) { //if checkbox is checked 
       checked.push(view.label); //add value of checkbox to "checked" array (ex. "Petzl") 
      } 
      else { 
       checked.splice(array.indexOf(view.label), 1); //if checkbox is not checked, remove value from array 
       alert(checked); //test 
      } 
      checkedreg = checked.join("|"); //create regex of values ("Petzl| Mammut| Edelweiss)" 
      checkedreg = checkedreg.replace(/\s+/g, ''); //for some reason it adds spaces so i have to remove them 
      alert(checkedreg); //test 
      alert(checked); //test 
      rtable.fnFilter(checkedreg, 0, true); //filters a column based on a regex and column index 
     } 
    }) 
}); 
+0

是什麼警報(view.checked);說?另外,你的JavaScritp控制檯說什麼? – fjc

+0

仍試圖找出根本問題。我可以告訴你,''('select')底部附近有一個額外的''''''''''''''''''''''''''多重選擇符({...'代碼。 – War10ck

+0

你可能需要明確設置一個檢查什麼view.checked等於它的真實時,而不是當它的假 – Evan

回答

2

checked.splice(checked.indexOf(view.label), 1);更換checked.splice(array.indexOf(view.label), 1);,並嘗試

+0

哈哈......哎呀,謝謝! – David