2013-04-24 12 views
7

Ho uno scenario come questo in cui ho generato dinamicamente caselle di testo. Devo convalidare la casella di testo per max 15 caratteri e limitare i caratteri speciali.Ottenimento del valore in un controllo TextBox dopo l'inserimento

Di seguito è riportato il codice con cui in document.ready() sto generando le caselle di testo e rilegando gli eventi di inserimento .

$(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); 
    }); 

}); 

Ma questo non è working.The avviso che ho fornito non è coming.I pensare che i controlli si creano in caso pronto non può essere vincolato ad ascoltare events.Am io non faccio wrong.I sai perché sta accadendo. Voglio alcuni suggerimenti.

Grazie in anticipo.

Questo violino funziona. Sto verificando, potrei sbagliarmi dove. Aggiornerò dove ho sbagliato;

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

Sì ora lavorando .Nel documento pronto io sono in grado di legarsi pasta event.I era sbagliato alcuni dove nel codice. :) Grazie per i suggerimenti.

+2

$ (document)() {.. .}); –

+0

vedi ho aggiornato..grazie – mns

+0

Beh, ignorando 'GenerateFlagBoxes();', il resto funziona bene. Qualche errore JavaScript? Il tuo selettore ".flagText" è effettivamente corretto? O è 'GenerateFlagBoxes()' generando scatole con nomi di classi errati? –

risposta

3

Per gli elementi dinamici, è necessario un delegato di evento, ad esempio on.

Prova questa:

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

Prova delegazione evento per elementi generati in modo dinamico -

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

Intendi dire gestore di documenti pronto .... ?? Sì, puoi avere quanti più gestori di cui hai bisogno (_se hai davvero bisogno_) –

0

uso bersaglio .ready (funzione

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