2017-11-02 3 views
0

meine Telefonnummer Validierung funktioniert nicht und ich weiß nicht warum. Senden sollte aktiv sein, wenn die Anzahl Länge 9 oder 10, in anderen Fällen vorlegen sollte disabled.Here ist der CodeNummer Validierung Javascript funktioniert nicht

HTML Körper:

<body> 
<input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false"> 
<input type="submit" value="Send" class="example" id="przycisk"> 
    <script src="script.js"></script> 
</body> 

JS

var numertell = document.getElementById("numertel"); 
var numerlength = numertell.value.length; 
if(numerlength==10 && numerlength==9) 
    document.getElementById("przycisk").disabled=false; 
else 
    document.getElementById("przycisk").disabled=true; 
+4

Was "funktioniert" nicht darüber?Wie wird dieser Code aufgerufen, wenn sich der Wert ändert? – David

+0

machen Sie ein Arbeits-Snippet –

+1

'&&' == AND, '||' == ODER – Andreas

Antwort

7

einreichen sollte aktiv sein, wenn die Nummernlänge 9 oder 10 ist, in anderen Fällen senden sollte deaktiviert sein

Ihr Problem ist, diese Linie

if(numerlength==10 && numerlength==9) 

&& mit ||seit numerlength ersetzen 9 und 10 zur gleichen Zeit nicht sein. Überprüfen Sie diese doc, um mehr über logische Operatoren zu erfahren.

if(numerlength== 10 || numerlength==9) 

bearbeiten

Sie müssen den Code Aktien oben, wenn der Wert der Textbox Änderungen aufzurufen. Ich habe ein Beispiel mit keyup Ereignis geteilt.

Demo

document.getElementById("przycisk").disabled = true; 
 
document.getElementById("numertel").addEventListener("keyup", function() { 
 
    var numerlength = this.value.length; 
 
    //console.log(numerlength); 
 
    if (numerlength == 10 || numerlength == 9) 
 
    document.getElementById("przycisk").disabled = false; 
 
    else 
 
    document.getElementById("przycisk").disabled = true; 
 
});
<input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false"> 
 
<input type="submit" value="Send" class="example" id="przycisk">

+0

Vielleicht erklären Sie den Unterschied zwischen '&&' und '||'? Anders als diese großartige Antwort. –

+0

Oh, das ist richtig, aber ID funktioniert nicht auch.Submit ist immer deaktiviert –

+0

@MiKcid Ich habe eine Demo hinzugefügt. – gurvinder372

0

Try this ....

function check_value() 
 
{ 
 
var numertell = document.getElementById("numertel"); 
 
var numerlength = numertell.value.length; 
 
if(numerlength == 10 || numerlength ==9) 
 
    document.getElementById("przycisk").disabled=false; 
 
else 
 
    document.getElementById("przycisk").disabled=true; 
 
}
<body> 
 
<input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="9000000000" aria-invalid="false" onblur = "check_value();"> 
 
<input type="submit" value="Send" class="example" id="przycisk"> 
 
    <script src="script.js"></script> 
 
</body>

+0

Danke, das funktioniert, aber ich bin sehr neugierig - kannst du mir sagen, warum mein Code nicht funktioniert? –

+0

die Bedingung der Nummernlänge sollte sein "oder", d. H. "||" –

0

Yo u sollte auch diese Bedingung innerhalb Eingabeereignis setzen und weisen neue numertell Wert in diesem Fall wie folgt aus:

var numertell = document.getElementById("numertel"); 
 
var numerlength = numertell.value.length; 
 
if (numerlength === 10 || numerlength === 9) 
 
    document.getElementById("przycisk").disabled = false; 
 
else 
 
    document.getElementById("przycisk").disabled = true; 
 

 
numertell.addEventListener('input', function(evt) { 
 
    numerlength = numertell.value.length; 
 

 
    if (numerlength === 10 || numerlength === 9) 
 
    document.getElementById("przycisk").disabled = false; 
 
    else 
 
    document.getElementById("przycisk").disabled = true; 
 
});
<body> 
 
    <input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false"> 
 
    <input type="submit" value="Send" class="example" id="przycisk"> 
 
    <script src="script.js"></script> 
 
</body>

0

html >>>

<body> 
<input type="number" name="number-189" value="1234" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false" onkeydown="myFunction()"> 
<input type="submit" value="Send" class="example" id="przycisk" > 
    <script src="script.js"></script> 
</body> 

Javascript >>>

$(document).ready(function(){ 
myFunction(); 
}); 
function myFunction() { 
    var numertell = document.getElementById("numertel"); 
    var numerlength = numertell.value.length; 
    if(numerlength==10 || numerlength==9) 
    document.getElementById("przycisk").disabled=false; 
    else 
    document.getElementById("przycisk").disabled=true; 
} 
+0

Es gibt keine Hinweise vom Benutzer, dass sie jQuery verwenden, so dass es keinen Sinn macht, das jQuery-Dokument zu verwenden, wenn es nur javascript-Optionen gibt. –

0

Bitte versuchen Sie

if(numerlength === 10 || numerlength === 9).

|| ist ein Operator für "ODER" -Betrieb in Javascript. Auch zum Vergleich sollte === anstatt == verwendet werden.

Verwandte Themen