1

for ループを使用して実行時に checkBox を生成しましたが、チェックボックスごとにチェック済みイベントを添付したいのですが、jquery で同じものを実装する方法を教えてください。

チェックボックスを追加するためにテーブルを使用しています。

<script>
var genTable = "<table border='1' style='border-collapse:collapse' cellpadding='5' width='100%'><thead><tr><td><input type='checkBox' id='mainCheck' /></td><td>ID</td><td>ArticleTitle</td><td>ArticleDate</td></tr></thead>";
for (i = 0; i < result.length; i++) {
                    if (result[i].IsImageAvailable == "TRUE") {
                        iChecked = "";
                    }
                    else {
                        iChecked = "disabled = disabled";
                    }
                    genTable += "<tr><td width='2%'>
<!--Here is my checkBox on which i want to attach checked event-->
<input type='checkBox' id='chkBox" + i + "' onchange='FillSecondGrid(" + result[i].ArticleID + ")' />

</td><td width='5%'>" + result[i].ArticleID + "</td><td>" + result[i].ArticleTitle + "</td><td width='5%'>" + result[i].ArticleDate + "</td></tr>";
                }
                genTable += "</tbody></table>";
                document.getElementById("gridFirst").innerHTML = genTable;
</script>
4

4 に答える 4

3

タグでチェックボックス マークアップを生成しているので、チェックボックスの生成後にイベントをscript追加するだけです。onchange

<script>
  // .. checkbox generation here ..
  $('table').find('input[type=checkbox]').change(function () { /* do things on change here */ });
</script>

または、代わりに、.onドキュメントの準備ができているすべてのチェックボックス要素で使用します。

$(function () {
  // on document ready..
  $('table input[type=checkbox]').on('change', function() { /* do things on change here */ });
}

この.onメソッドは、ドキュメントの準備ができた後に作成された新しいチェックボックス (および既に存在するもの) をキャッチし、onchangeイベントを添付します。

于 2011-08-19T18:17:09.077 に答える
1

チェックボックスがチェックされているかどうかを確認する必要があるイベントを渡した回答はありません。これは、指定された要素の子であるすべてのチェック ボックスにイベントをアタッチし、オンまたはオフのチェック ボックスがクリックされたときに機能するクロス ブラウザー スニペットです。

var checkboxes = $(element).find("input[type=\"checkbox\"]");
$(checkboxes).change(function (event) {
    // These two lines compensate for getting the event and checkbox when in ie.
    if (!event) { var event = window.event; }
    var checkbox = event.target || event.srcElement;
    if (checkbox.checked)
        alert("Checkbox is checked");
    else
        alert("Checkbox is not checked");
});

jQueryイベントには2つの補償行が実際に必要だとは思いませんが、コードがjQueryイベントなしでも機能するようにそこに置くと便利です。

于 2012-07-20T09:22:28.557 に答える
0

チェックボックスにクラスを追加する

<input class="dynChk" type='checkBox' id='chkBox" + i + "' onchange='FillSecondGrid(" + result[i].ArticleID + ")' />

次に、delegateまたはを使用しますlive

$("table").delegate(".dynChk",'change',function(){
//your code
});

live

$(".dynChk").live("change",function(){
//your code
});
于 2011-08-19T18:23:44.237 に答える
0

そのために live() を使用できます。以下に例を示します (構文などを確認してください)。

$('.someclassforyourcheckbox').live('change', function(){//do your stuff})
于 2011-08-19T18:03:41.443 に答える