2016-08-09 5 views
1

Ich habe ein Problem mit meinem Code. Es gibt keinen Fehler in der Chrome-Konsole, aber es funktioniert nicht. Ich wollte die eingegebenen Passwort-Zeichen zählen. Voraussetzung ist, dass das Passwort mindestens 6 Zeichen lang sein muss.Jquery Wenn die Bedingung für die Anzahl der Passwortzeichen

$(document).ready(function() { 
 
    $(".submit").click(function() { 
 
    if($('#regform input[type="password"]').val().length > 6) { 
 
     $('.error').html('Must have a min of 6 chars'); 
 
     $('.error').css("display","block"); 
 
    } 
 
    } 
 
}); \t

Kann jemand es für mich erklären?

+0

Fix Ihre Schnipsel –

+0

Können Sie auch Ihre HTML zeigen (so können wir sicherstellen, dass die Elemente existant sind)? –

+0

Ich bin verwirrt durch den Fehler 'Uncaught SyntaxError: Unexpected token <", 'wie ich es nirgendwo sehen kann! –

Antwort

1

Vielleicht ist es das, was Sie suchen:

HTML

<input type="text" id="password" /> 
<input type="button" class="btnSubmit" value="Submit" /> 
<p class="error"></p> 

jQuery

$('.btnSubmit').click(function(){ 
    if($("#password").val().length < 6){ 
    $('.error').html('Must have a min of 6 chars'); 
    }else{ 
    $('.error').html('Good to go.'); 
    } 
}); 

JSFiddle: https://jsfiddle.net/Ltnrwt0t/

+0

Während dieses Code-Snippet die Frage lösen kann, [einschließlich einer Erklärung] (// meta.stackexchange.com/questions/ 114762/code-based-answer-based-answer) hilft wirklich, die Qualität Ihres Posts zu verbessern.Erinnern Sie sich, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute möglicherweise nicht die Gründe für Ihren Code-Vorschlag kennen Versuchen Sie auch nicht, Ihren Code mit erläuternden Kommentaren zu füllen, dies reduziert die Lesbarkeit sowohl des Codes als auch der Erklärungen! –

+0

Danke, ich behalte das im Hinterkopf, wenn ich meine nächste Antwort schreibe. Da es nicht so viel Code ist, dachte ich, dass es nicht so schwer war, daraus abzuleiten, was los war und was sein Fehler war. –

+0

@ ExoSkeleton321 Vielen Dank für Ihre Antwort !!! Es war korrekt, aber ich brauche keine ID dafür, denn wir haben einen Code, um den Wert zu ändern. Ich denke, ich muss den Code bekommen, wo der _value = "submit" _ –

4

Das Problem besteht darin, dass das Formular nicht gestoppt werden kann, auch wenn ein Fehler aufgetreten ist. Sie müssen eine return false oder event.preventDefault() hinzufügen, um das Senden des Formulars tatsächlich zu beenden. Sie erhalten keine Fehlermeldung, da das Formular sofort auf der Seite action fortgesetzt wird, bevor eine Fehlermeldung angezeigt wird.

Zweitens gibt Ihre Bedingung einen Fehler aus, wenn die Passwortlänge größer als sechs ist. Dies sollte umgekehrt werden.

Ihr Code wie folgt ändern:

$(document).ready(function() { 
    $(".submit").click(function(event) { 

     // SWITCH THE COMPARISON OPERATOR 
     if($('#regform input[type="password"]').val().length < 6) { 
      $('.error').html('Must have a min of 6 chars'); 
      $('.error').css("display","block"); 

      // ADD THIS LINE 
      event.preventDefault(); 

      // OR THIS LINE 
      return false; 

     } 
    }) 
}); 

Für weitere Informationen:

+0

Woher wissen Sie, dass es sogar ein Formular,' .submit' könnte irgendetwas in diesem Kontext sein? – adeneo

+0

@adeneo ich bereits fragte nach HTML in einem Kommentar zu der Frage, da es keine Antwort gab, folgerte ich, dass es ein Formular war (höchstwahrscheinlich und konventionelles Szenario) –

+0

Ich schätze deine Vermutung ist richtig, auch wenn es eine Strecke ist, aber könnte Es gibt eine Reihe von Gründen, warum es nicht funktioniert, vielleicht hat das OP überhaupt kein '.submit' Element? – adeneo