0

ここにすべてのコードを配置http://jsfiddle.net/tUukv/

以下は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() {。すべての作品

4

2 に答える 2

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;
    });
})
于 2013-09-28T06:23:17.843 に答える
0

使用する

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

});

$(document)動的に追加された要素にクリック ハンドラをアタッチするには、 を使用する必要があります$(document)。これは、常に存在するため、いつでもアタッチできるからです。その場合、存在しない要素に具体的にアタッチしても機能しません。また、 withjQueryと対話するすべてのコードをラップして、イベントなどをアタッチする前にすべてが確実にロードされるようにすることをお勧めします。DOM$(document).ready()

(これは私の最初のスタック オーバーフローの投稿です!)

于 2013-09-28T06:27:31.760 に答える