2013-04-24 65 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); 
    });