2017-05-20 1 views
0

Dies ist die Geige http://jsfiddle.net/HGJb3/Wie für alle Texteintrag in allen meine Anwendung beschränken - jquery

HTML

<input class="anything" type="text"> 
<input type="text"> 
<input id="someid" type="text"> 
<input type="text"> 
<input id="someotherid" type="text"> 
<input type="text"> 
<input type ="text"> 
<br /> 
<br /> 
<br /> 
working one 
<input id="text" type="text"> 

JS

$('#text').keypress(function (e) { 
    var regex = new RegExp("^[a-zA-Z0-9-]+$"); 
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (regex.test(str)) { 
     return true; 
    }  
    e.preventDefault(); 
    return false; 
}); 

Jetzt möchte ich diesen keypress anwenden Funktion für alle Textfelder nicht nur zuletzt. Wie man diese Funktion so bearbeitet, dass sie für alle funktioniert?

Kann nicht alle ihre Ids gleich setzen.

haben, um es für @ html.textBoxFor funktioniert - kann datannootation in Modell setzen das ist, warum

Antwort

1

Sie versuchen diese können alle Eingaben Textbox anwenden: Fiddle Working fiddle

Fiddle example with popup

$('input[type="text"]').keypress(function (e) { 
    var regex = new RegExp("^[a-zA-Z0-9-]+$"); 
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (regex.test(str)) { 
     return true; 
    } 

    e.preventDefault(); 
    return false; 
}); 
+0

nicht in der Lage ti Arbeit zu machen, wenn die Textbox in ist Popup oder Teilansicht in asp.net – shaswatatripathy

+0

Sie können überprüfen, ob es mit Popup funktioniert. Geige Beispiel http://jsfiddle.net/HGJb3/568/ –

1

Wie Sie sagten (Kann nicht alle ihre IDs setzen), ist dies nicht wie HTML gültig, weil Sie auf einer einzelnen Seite dieselbe ID für mehr als ein Element verwenden können. Auch wenn Sie ein paar Elementen dieselbe ID zuweisen, aber während Sie dieses Element mithilfe der ID von der Clientseite abrufen, wird das erste Element, das in DOM gefunden wird, von TOP abgerufen.

Weisen Sie also in allen diesen Szenarien eine gemeinsame Klasse allen Textfeldern zu, für die Sie diese Regex anwenden möchten, und binden Sie dann das keypress-Ereignis für diese gemeinsame Klasse als Selektor.

Working fiddle

HTML

<input class="textClass anything" type="text"> 
<input class="textClass" type="text"> 
<input class="textClass" id="someid" type="text"> 
<input class="textClass" type="text"> 
<input class="textClass" id="someotherid" type="text"> 
<input class="textClass" type="text"> 
<input class="textClass" type="text"> 
<br /> 
<br /> 
<br /> 
working one 
<input class="textClass" id ="text" type="text"> 

JS

$('.textClass').keypress(function (e) { 
    var regex = new RegExp("^[a-zA-Z0-9-]+$"); 
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (regex.test(str)) { 
     return true; 
    } 
    e.preventDefault(); 
    return false; 
}); 

ich diese Hoffnung für Sie arbeitet :)

0
Just change your selector to "input:text" if you are using textbox 
$('input:text').keypress(function (e) { 
    var regex = new RegExp("^[a-zA-Z0-9-]+$"); 
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (regex.test(str)) { 
     return true; 
    } 

    e.preventDefault(); 
    return false; 
}); 
Verwandte Themen