粘贴后从TextBox获取值

时间:2013-04-24 17:15:44

标签: javascript jquery

我有一个这样的场景,我有动态生成的文本框。 我必须验证文本框最多15个字符并限制特殊字符。

下面是document.ready()中生成文本框和绑定的代码 将事件粘贴给他们。

$(document).ready(function(){

  //Generate textboxes..i have some logic by which i am generating
  //textboxes on the fly and giving textboxes a class flagText
  GenerateFlagBoxes();

  //i am binding the textboxes by class names
   var $flagArea = $('.flagText');
    $flagArea.bind('paste', function () {
        var element = this;
        setTimeout(function () {
            alert($(element).val());
        }, 100);
    });

});

但这不起作用。我提供的警报不会到来。我认为控件是在准备好的事件中创建的。 一定要听事。我错了。我不知道为什么会这样。 我想要一些建议。

提前致谢。

这个小提琴正在工作。我正在检查,我可能错了一些地方。我会更新我的位置 我错了;

http://jsfiddle.net/mnsscorp/8QFGE/1/

是的,现在正在工作。在文档准备好了我能够绑定粘贴事件。我错了代码中的某些地方。 :) 谢谢你的建议。

3 个答案:

答案 0 :(得分:8)

尝试动态生成元素的事件委派 -

$(document).on('paste','.flagText',function(){
    var element = this;
    setTimeout(function () {
        alert($(element).val());
    }, 100);
});

答案 1 :(得分:3)

对于动态元素,您需要一个事件委托,例如on

试试这个:

$("body").on('paste', '.flagText', function () {
    setTimeout(function () {
        alert($(this).val());
    }, 100);
});

答案 2 :(得分:0)

使用目标

var $flagArea = $('.flagText');
    $flagArea.bind('paste', function (e) {
        setTimeout(function () {
            alert(e.target.value);
        }, 100);
    });
相关问题