2016-05-02 14 views
2

Ich muss verschiedene Eingabefelder für nicht numerische Zeichen validieren. Ich benutze auch Bootstrap-Warnungen. Also habe ich den Code unten. Es funktioniert gut, wenn Sie das erste Mal einen Fehler machen. Sie erhalten die BS-Warnung. Wenn Sie jedoch einen Fehler in alle nachfolgenden Eingaben eingeben, funktioniert der Code nicht, dh ich bekomme keine Warnung. Ich habe den Inhalt der beiden Variablen Menge und Menge überprüft, und in der Tat bei den zweiten Pässen des Codes enthalten sie das Schlechte nicht numerischer Charakter. Aber aus irgendeinem Grund sieht IsNaN es nicht. Was mache ich falsch? Dies ist auch nicht ideal hat den Inhalt blinkt in SichtWarum funktioniert isNaN nicht beim zweiten Aufruf?

<div id="char_error" class="alert alert-danger"> 
    <strong>Error</strong> You have entered an illegal character in the quantity box, please enter a number. 
    <button type="button" class="close" data-dismiss="alert" aria-label="Close"> 
     <span aria-hidden="true">&times;</span> 
    </button> 
</div> 

Außerdem habe ich meine JS-Datei starten, indem Sie die <div id="char_error"> versteckt und verschwindet dann:

$(".product_table").on('change', '.edit_quantity',function(){ 

    var qty = $(this).find('input').val(); 
    var quantity = $(this).parents(':eq(1)').find('input').filter(".edit_quantity").val(); 

    console.log('l 117', qty); 
    console.log('l 118', quantity); 

    if (isNaN(quantity||qty)) 
    { 
     $("#char_error").show(); 
    } 
    else 
    { 
    //more code goes here// 
    } 
} 

HTML.

+2

'' || nicht tut, was Sie denken, es tut. – SLaks

+0

Können Sie [ein funktionierendes Beispiel zur Demonstration des Problems bereitstellen] (http://stackoverflow.com/help/mcve)? – whipdancer

Antwort

5

Weil es nur einmal aufgerufen wird.

if (isNaN(quantity||qty)) { 

ist das gleiche wie

var t = quantity||qty; 
if (isNaN(t)) { 

davon Stattdessen Sie

brauchen
if (isNaN(quantity) || isNaN(qty)) { 
+0

Vielen Dank für Ihre Hilfe. Wenn Sie diesen Fehler beheben, wird der Code jedoch nicht zweimal ausgeführt. Schade. – Vince

Verwandte Themen