0

私はいくつかのjQueryコードで小さな問題に直面しています...

まず、うまく機能する次のコードがあります。

    $(".add_cheque").click(function() {
        nb_cheque += 1;
        var html = '<tr><td><input type="checkbox" checked="checked"></td><td><input type="text" name="montant'+nb_cheque+'" id="montant" value="Montant" /></td>';
        $('#services_pack').append(html);
    });

だから今、ページに追加されたテキスト入力から「モンタント」セレクターをキーアップ機能で使用したいのですが、うまくいきません...次のようなことをすると:

$('#montant').keyup(function() {
        alert('test keyup');
    });

そして、入力に何かを#montant入力しましたが、何も起こりません...

誰 ?

4

2 に答える 2

1

#montant が DOM に追加された後に、このイベントをトリガーする必要があります。

$(".add_cheque").click(function() {
    nb_cheque += 1;
    var html = '<tr><td><input type="checkbox" checked="checked"></td>'
      + '<td><input id="montant' + nb_cheque +'" type="text"' // unique ID
      + 'name="montant'+nb_cheque+'" id="montant" value="Montant" /></td>';
    $('#services_pack').append(html);


    // Here
    $('#montant' + nb_cheque).keyup(function() {
       alert('test keyup');
    });
});

または、ライブ(.on/.delegate/.live/etc)イベントのキープレスを設定できます

于 2012-12-04T14:08:54.920 に答える
1

add_cheque をクリックするたびに、新しい行とボタンが作成されます..すべてのボタンは ID として #monant になります...しかし、DOM ID は一意である必要があります...

あなたも閉じる必要があります

このようなjqueryオブジェクトでボタンを作成してみてください

var newButton = jQuery('<input type="text" name="montant'+nb_cheque+'" value="Montant" />');

var jRow = jQuery('<tr><td><input type="checkbox" checked="checked"></td><td></td></tr>';

//add your button
jRow.find('td:last').append(newButton);

jQuery('#services_pack').append(jRow);

newButton.keyUp(function(){
    //your method
});
于 2012-12-04T14:09:00.053 に答える