2013-04-24 13 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アラートは私にはないwrong.I events.Amを聞くためにバインドできません できるコントロールがreadyイベントで作成されていることを考えるcoming.Iではないではありませんなぜそれが起こっているか知っている。 私はいくつかの提案をしたいです。

ありがとうございます。

このバイオリンはworking.Iチェックしていますが、私はここで、i 午前間違っているいくつかのwhere.Iが更新されます間違っている可能性があります。

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

はい、今私はペーストevent.Iを結合することができています準備ができて文書.IN作業は、コード内のいくつかの場所を間違っていました。提案のための:) 感謝。

+2

$(ドキュメント).ready(関数(){... 。}); –

+0

私はupdated.thanksを参照してください – mns

+0

まあ、 'GenerateFlagBoxes();'を無視し、残りの部分は正常に動作します。 JavaScriptのエラー?あなたの '.flagText'セレクタは実際に正しいですか?または 'GenerateFlagBoxes()'が不正なクラス名のボックスを生成していますか? –

答えて

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

あなたはドキュメントレディハンドラを言うつもりですか?はい、あなたは必要な数のハンドラを持つことができます(_本当に必要です_) –

0

使用対象

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