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 功能......但它不起作用......如果我做类似的事情:

$('#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');
    });
});

或者你可以设置一个 live(.on/.delegate/.live/etc) 事件按键

于 2012-12-04T14:08:54.920 回答
1

每次您单击 add_cheque 时,您都会创建一个新行和一个按钮。每个按钮都会变成 #monant 作为 id ......但是 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 回答