2016-04-19 15 views
1

Freunde, ich kann nicht herausfinden, wie man Textvalidierung für admin var hinzufügen. Punkt ist Benutzer gibt entweder 0 oder 1 oder true oder false in das Formular ein. Es ist in Ordnung mit Zahlen zu überprüfen, aber ich kann keine gültige Prüfung für Texteingabe, z. true-e-e-e, fasleee, abra-cadabra usw.Wie fügt man Eingabetext-Validierung für True und False hinzu?

<script type="text/javascript"> 
    function submitEmployeeForm() {    

     // getting the employee form values 
     var name = $('#name').val().trim(); 
     var age = $('#age').val(); 
     var admin = $('#admin').val(); 
     if(name.length ==0) { 
      alert('Please enter name'); 
      $('#name').focus(); 
      return false; 
     } 

     if(age <= 0) { 
      alert('Please enter valid age'); 
      $('#age').focus(); 
      return false; 
     } 

     if(admin < 0 || admin > 1) { 
      alert('Please enter 0 for false, 1 for true'); 
      $('#admin').focus(); 
      return false; 
     } 
     return true; 
    }; 
</script> 

habe ich versucht, die folgenden 2 Möglichkeiten:

!admin.isEqual("false") || !admin.isEqual("true") 

admin.valueOf()!="true" || admin.valueOf()!="false" 

als Ergebnis ist es passiert keinen Text einschließlich wahr und falsch.

+0

isEqual ist JAVA, nicht JS. 'if (admin)' ist falsch, wenn admin == blank, null undefuned oder 0 – mplungjan

+3

Verwenden Sie einfach ein paar Optionsfelder/Dropdown-Menüoptionen für Ihr Admin-Feld – kkaosninja

Antwort

2

Wenn Sie möchten, nehmen nur '0','1','true','false' als gültig dann so etwas verwenden

if (['0','1','false','true'].indexOf(admin.toLowerCase()) === -1) { 
     alert('Please enter 0 for false, 1 for true'); 
     $('#admin').focus(); 
     return false; 
} 

Was wir tun, ist ein Array erstellen, die die gültigen Texte hält, und dann indexOf(parameter) verwenden, die das Array für jedes Element Matching sucht der übergebene Parameter Wenn es gefunden wird, gibt es die Position zurück, die es in dem Array gefunden hat, andernfalls gibt es -1 zurück. Also in Ihrem Fall, wenn es -1 ist, was bedeutet, dass der übergebene Wert nicht einer der akzeptierten war, dann mach dein Ding.


Alternativ können Sie eine Checkbox anstelle eines Textfeld verwenden und einfach testen, ob es checked Eigenschaft wahr ist.

+0

Ich versuchte (['0', '1' , 'false', 'true']. ​​indexOf (admin.toLowerCase())> -1) , jetzt akzeptiert es alle außer '0', '1', 'false', 'true' – SergeiK

+0

@svorobei Sie haben Recht .. ich habe nicht bemerkt, was du in der if gemacht hast. Ändert einfach '<-1' bis' == - 1' –

+0

danke! das hat geholfen. – SergeiK

0

Versuchen Sie einfach die folgenden: (. Mehr auf here Dies ist eine Gleichheit Tabelle für Werte, wenn Sie == statt === verwenden)

if (admin == true || admin == false || admin == "true" || admin == "false") { 
    //if you want to convert -> convert it, and send to server 
} else { 
    //Wrong input 
} 

0

warum man nicht einfach tun Überprüfen Sie, ob es 1, 0, wahr oder falsch ist, aber verwenden Sie logisches UND wie folgt:

if(admin != 0 && admin != 1 && admin != "true" && admin != "false"){ 
    alert('Please enter 0 for false, 1 for true'); 
    $('#admin').focus(); 
    return false; 
} 
Verwandte Themen