在动态生成的文本框上添加on key up事件

时间:2015-12-17 23:29:51

标签: jquery

我生成了动态文本框,我想添加一个keyup事件,但是我这样做是为了使用jQuery单独执行,但它无法正常工作。在基于我的代码的DOM中

                         `$('#dynamicTextBox').html('');
                            for (var i = 0; i < ui.value; i++) {
                                var textbox = $('<input type="text" class="txt' + i + '" />')
                                $('#dynamicTextBox').append(textbox);
                            }
                        }`  

当附加这些元素时,我得到txt0 txt1 txt2 txt3等等。我只是想简单地尝试触发onkeyup上的警报,但它没有被检测到。我试过了

           $('input#txt0').on('keyup','.txt0', function() {
            dTxt0 = ui.value;
            changeValue();
           value = $(".txt0").val();   
          alert(value);
           });

1 个答案:

答案 0 :(得分:0)

使用您当前的HTML,您可以使用以下内容。

$(function()
{
    $(document).on("keyup", "input:text[class^='txt']", function(){
        var val = this.value;
    });
});

<强> JSFIDDLE

如果您可以为这些元素使用公共类并在循环中生成唯一ID,那会更好。

您的HTML看起来像

<input type="text" id="txt0" class="inpboxes" />
<input type="text" id="txt1" class="inpboxes" />
<input type="text" id="txt2" class="inpboxes" />

并且jQuery将更改为

$(function()
{
    $(document).on("keyup", "input:text.inpboxes", function(){
        var val = this.value;
        console.log(val);
    });
});

<强> JSFIDDLE