0

JavaScript を使用して、その場でいくつかの HTML テーブルを生成しています。この動的テーブルに入力した後、jQuery を使用して入力の一部を「取得」し、フォーム検証のためにいくつかの小さな計算を行います。ただし、私の jQuery セレクターは動的 HTML フォームでは機能しません。誰か私にいくつかの提案をしてもらえますか? ありがとう!

コードは次のとおりです。

<script>
//generate HTML table
$('<tr><th><label for="id_CAM_1">Input:</label></th><td><select name="CAM_1_'+i+'" id="id_1_'+i+'"><option value="1">Option 1</option><option value="2">Option 2</option></select></td></tr>').appendTo('.table');

// jQuery selector, which does not work dynamically

$('select[name=CAM_1_'+i+']').change(function() {
            var ss1=$(this).val()
            alert(ss1)})
</script>
4

4 に答える 4

1

私はあなたの問題を再現したかったのですが、私にとっては完全にうまくいきます。})これらはあなたが投稿したものから欠落しているように見えたので、閉じ括弧 ( ) を追加する必要がありました。コンソールにエラーが表示されますか。JavaScript コンソールでエラーが発生するかどうか、および最新バージョンの jQuery を使用しているかどうかを確認してください。

<table class="table"></table>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
<script>
i = 0;
//generate HTML table
$('<tr><th><label for="id_CAM_1">Input:</label></th><td><select name="CAM_1_'+i+'" id="id_1_'+i+'"><option value="1">Option 1</option><option value="2">Option 2</option></select></td></tr>').appendTo('.table');

// jQuery selector, which does not work dynamically

$('select[name=CAM_1_'+i+']').change(function() {
    var ss1=$(this).val()
    alert(ss1)
});
</script>
于 2012-08-28T16:48:58.337 に答える
1
<script type="text/javascript">
    $(function() {
        $('<tr><th><label for="id_CAM_1">Input:</label></th><td><select name="CAM_1_'+i+'" id="id_1_'+i+'"><option value="1">Option 1</option><option value="2">Option 2</option></select></td></tr>')
            .appendTo('.table')
            .on('change', function() {
                alert(this.value);
        });
    });
</script>​​​​​​​​​​​​​​​
于 2012-08-28T16:42:57.030 に答える
1

select以下は、で始まる名前を持つすべての要素のすべての変更を検出CAM_1_しますtableSelector

$('tableSelector').on('change', 'select[name^="CAM_1_"]', function() {
    alert(this.value);
});
于 2012-08-28T16:43:58.270 に答える
0
<script>
//generate HTML table
$('<tr><th><label for="id_CAM_1">Input:</label></th><td><select name="CAM_1_'+i+'"   id="id_1_'+i+'"><option value="1">Option 1</option><option value="2">Option 2</option></select></td></tr>').appendTo('.table');

// jQuery selector, which does not work dynamically

$('select[name=CAM_1_'+i+']').live("change",function() {
        var ss1=$(this).val()
        alert(ss1)})
</script>

したがって、基本的に動的に生成されたhtmlにはjqueryのライブメソッドを使用する必要があります。

于 2012-08-28T16:57:39.267 に答える