2015-05-15 103 views
0

我有一些問題。我有我的jsp頁面中的複選框。所以如果複選框被選中,我必須設置一個布爾變量爲true,否則爲false。我想是這樣的jQuery中的布爾變量

<script> 
$(document).ready(function() { 
    $(".confirmCheckbox").change(function() { 
     boolean confirmAssignee = false; 
     $(this).attr("checked") { 
      confirmAssignee = true; 
     } 
     alert(confirmAssignee); 
    }); 
}); 

但它給這個錯誤

SyntaxError: missing ; before statement 
$(this).attr("checked") { 

我在頁面上覆式複選框。示例代碼是這樣的:

for loop(----) 
<input type="checkbox" id="confirmBox-${loopCounter.index}" class = "confirmCheckbox"> 

任何幫助將不勝感激。如果需要的話問任何事

+0

使用'var',代替'boolean' –

+0

JS變種定義:https://開頭顯影劑.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/var –

回答

2

您需要同時定義變量使用var和使用this.checked.prop()得到複選框是否被選中與否。

簡單的陳述就可以做到。

var confirmAssignee = this.checked; //OR $(this).prop("checked"); 

完整的腳本

$(document).ready(function() { 
    $(".confirmCheckbox").change(function() { 
     var confirmAssignee = false; 

     if (this.checked) { 
      confirmAssignee = true; 
     } 
     alert(confirmAssignee); 
    }); 
}); 
+0

@ user3681970,很高興能幫到你 – Satpal

1

沒有布爾使用類型var

變化

boolean confirmAssignee = false; 

var confirmAssignee = false; 

你也將錯過,如果在狀態$(this).attr("checked") {應該是if($(this).attr("checked")) {

注意使用支票代替attr複選框,建議爲jQuery doc

例如,的selectedIndex,標記名的nodeName,節點類型, ownerDocument,defaultChecked和defaultSelected應檢索 並與.prop()方法設置。在jQuery 1.6之前,這些屬性 可以通過.attr()方法獲取,但這不在attr的 範圍內。這些屬性沒有相應的屬性,只有 屬性。

您可以簡化代碼像

Live Demo

$(".confirmCheckbox").change(function() { 
    alert(this.checked); 
}); 
+0

Thanks dude :)它幫助:) – user3681970

+0

不客氣@ user3681970 – Adil

0
  1. 有沒有boolean變量。您只需使用var而不是boolean
  2. 要檢查是否複選框被選中,你應該使用:checked
  3. 你缺少if

試試這個:

$(document).ready(function() { 
    $(".confirmCheckbox").change(function() { 
     var confirmAssignee = false; 
     // ^^^^^^^^^^^^^^^^^^^^^^^^^ 

     if ($(this).is(":checked")) { 
     // ^^^^^^^^^^^^^^^^^^^^^^^^ 
      confirmAssignee = true; 
     } 
     alert(confirmAssignee); 
    }); 
}); 
0

的Javascript有你沒有需要申報的數據類型的自動數據類型它會自動採用JavaScript。要檢查使用this.checked

$(".confirmCheckbox").change(function() { 
     var confirmAssignee = false; 

     if (this.checked) { 

      confirmAssignee = true; 
     } 
     alert(confirmAssignee); 
    }); 
0

兩個問題的複選框,在你的代碼 一個存在於JavaScript中使用VAR而不是布爾

其次沒有布爾數據類型,你需要檢查,如果複選框被選中或不如果條件

使用以下代碼:

$(document).ready(function() { 

$(".confirmCheckbox").change(function() { 

var confirmAssignee = false; 
if($(this).attr("checked")) { 

} 
alert(confirmAssignee); 
}); 
}); 
0

1)使用var的布爾

var confirmAssignee = false;

2代替)使用選中複選框屬性

if($(this).is(':checked'))