2013-09-28 75 views
0

放在這裏的所有代碼http://jsfiddle.net/tUukv/Html複選框與jQuery顯示。需要檢查,如果複選框值改變(選中/取消)

下面的複選框創建/顯示無jQuery的。如果複選框值發生變化,則is_checkbox_changed0中的值更改爲1。所有作品。

<br>input type='checkbox' without jquery. All works<br> 
<table><tr><td> 
<input type='checkbox' id='checkbox_to_update0' name='checkbox_to_update0' class='checkbox_to_update_changed0' value = 'true' > 
</td></tr></table> 

<table><tr><td> 
<input type="text" name="is_checkbox_changed0" id="is_checkbox_changed0" style='width:30px;'> 
<script> 
$(".checkbox_to_update_changed0").change(function(){ 
document.getElementById('is_checkbox_changed0').value = 1; 
}); 
</script> 
</td></tr></table> 

但是需要使用jquery

創建這樣的代碼

<br>But with jquery input type='checkbox' does not work<br> 

<script language="javascript" type='text/javascript'> 
$(document).ready(function() { 
$('#existing_company_error').html("Checkbox <input type='checkbox' id='checkbox_to_update' name='checkbox_to_update' class='checkbox_to_update_changed' value = 'true' ><br>"); 
}); 
</script> 

<div id="existing_company_error"></div> 


<table><tr><td> 
<input type="text" name="is_checkbox_changed" id="is_checkbox_changed" size="" style='width:30px;'> 

<script> 
$(".checkbox_to_update_changed").change(function(){ 
//$('input[type="checkbox"]').change(function(){ 
//$(".checkbox_to_update_changed").on("change", function() { 
document.getElementById('is_checkbox_changed').value = 1; 
}); 
</script> 

</td></tr></table> 

如果我改變複選框值(檢查,或取消選中該複選框)在is_checkbox_changed值必須改變到1顯示覆選框。但它不會改變。

請問,建議需要改正的是什麼?

解決方案哦,我很愚蠢。 document.getElementById('is_checkbox_changed').value = 1;必須在$(document).ready(function() {之內。所有作品

+0

無疑在別處回答。使用'$(...)。is(':checked')' –

+0

我知道'is(':checked')'。但是如果複選框未選中,還需要更改值。 – user2465936

回答

3

由於元素動態創建,使用事件代表團

$(document).on('change', ".checkbox_to_update_changed", function(){ 
    document.getElementById('is_checkbox_changed').value = 1; 
}); 

jQuery(function($){ 
    $('#existing_company_error').on('change', ".checkbox_to_update_changed", function(){ 
     document.getElementById('is_checkbox_changed').value = 1; 
    }); 
}) 
0

使用

$(document).on('change', '.checkbox_to_update_changed', function(){ 

}); 

必須使用$(document)附上點擊處理程序來動態地添加元素,因爲$(document)總是存在,所以你可以隨時關注它。在這種情況下,特別附加到不存在的元素將不起作用。 此外,將所有與DOM交互的jQuery代碼與$(document).ready()包裝在一起可能是一個好主意,以確保在附加事件之前加載所有內容。

(這是我的第一個堆棧溢出帖子!)

相關問題