2013-04-24 63 views
7

我有一个像这样的场景,其中我有动态生成的文本框。 我必须验证最多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); 
    }); 

}); 

但这不是我提供的working.The警报不是coming.I认为其控制在就绪事件创建不能 绑定到听events.Am我wrong.I不知道它为什么会发生。 我想要一些建议。

在此先感谢。

这把小提琴在工作。我在检查,我可能会错在某个地方。我会更新我在哪里,我错误地 ;

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

是现在的工作。在文件准备好,我能够结合贴event.I是错误的代码中的一些地方。 :) 感谢您的建议。

+2

$(文件)。就绪(函数(){.. 。}); – 2013-04-24 17:18:13

+0

看到我已更新..谢了 – mns 2013-04-24 17:19:35

+0

好吧,忽略'GenerateFlagBoxes();',其余的工作正常。任何JavaScript错误?你的'.flagText'选择器是否正确?或者是'GenerateFlagBoxes()'产生类名不正确的盒子? – 2013-04-24 17:20:18

回答

3

对于动态元素,您需要事件代理,如on

试试这个:

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

尝试事件代表团动态生成的元素 -

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

你的意思是说文档准备好处理程序.... ??是的,你可以拥有尽可能多的处理程序(如果你真的需要的话) – 2013-04-24 17:40:49

0

使用目标

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