使用.append中的id

时间:2012-12-04 14:03:05

标签: jquery

我遇到一些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输入中输入内容,没有任何事情发生......

任何人?

2 个答案:

答案 0 :(得分: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)事件按键

答案 1 :(得分:1)

每次点击add_cheque,你都会创建一个新的行和按钮..每个按钮变为#monant as 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
});