2017-09-16 1 views
-2

Ich muss eine Patientenform machen (ich habe es mit einer Tabelle gemacht) und ein paar persönliche Fragen stellen. Zum Beispiel: eine Patientenanzahl. Nachdem jemand seine Nummer eingegeben hat, muss ich (in Javascript) prüfen, ob die Nummer genau 8 Nummern enthält. Wenn es 8 Zahlen enthält, wird das Eingabefeld grün, und wenn die Eingabe falsch ist, sollte es eine Nachricht geben (d. H. "Geben Sie eine Patientennummer mit 8 Ziffern ein.") Und das Eingabefeld sollte rot sein. Hier sind zwei Möglichkeiten, um den richtigen Code zu bekommen, aber beide haben nicht funktioniert. Kann mir jemand dabei helfen? Danke im Voraus!Überprüfen Sie, ob die Eingabe richtig/falsch ist und färben Sie das Eingabefeld

function checkpnummer() { 
    var pnummer = $('#pnummer').val; 
    if(pnummer != /^([0-9]a{8})$/) { 
     pnummer.style.color = "#CD5C5C"; 
     alert("Vul een patientnummer in dat bestaat uit 8 cijfers."); 
    } 

    else { 
     pnummer.style.color = "#00FA9A"; 
     $('#pnummer').focusout(pnummer); 
    } 
} 
+0

Dies ist nicht, wie Sie Zeichenfolgen mit einer Regex übereinstimmen. Auch ist "val" eine Funktion. Sie vergleichen eine Funktion mit einem Regex-Objekt. Sie müssen _match_ stattdessen einen _string_ eingeben. – Xufox

+0

Die Syntax für den Zugriff auf style.color ist ebenfalls falsch. – Nisarg

+1

[jQuery-Lernzentrum] (https://learn.jquery.com), [MDN: Regular Expressions Guide] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) – Andreas

Antwort

0

ich sehen kann, dass Sie Jquery verwenden, so ist hier die richtige jquery lösungs-

function checkpnummer() { 
if(!$('#pnummer').val().match(/^\d{8}$/)) { 
    $('#pnummer').css({"background-color": "#CD5C5C"}); 
    alert("Vul een patientnummer in dat bestaat uit 8 cijfers."); 
} 
else { 
    $("#pnummer").css("background-color", "#00FA9A"); 
    $("#pnummer").focusout(); 
} 
} 

Ich habe wies auf einige Fehler in Ihrem Code hin -

  • Falsche Verwendung von val() Methode
  • Falscher regulärer Ausdruck
  • falsche Art und Weise css ein Element zu ändern (verwenden $("element").css("property": "value"))
  • falsche Art und Weise regulären Ausdrucks Übereinstimmen (verwenden match() Methode)

Ich hoffe, dass dies helfen würde.

+0

Danke @ anu-007! Leider funktioniert mein Code immer noch nicht. Ich habe weniger Erfahrung mit jQuery, könnten Sie mir vielleicht mehr darüber erzählen, wie ich ($ (Funktion) ...) mein jQuery-Skript starten kann? – Maaike

+0

Sie müssen nur checkpnummer() -Funktion aufrufen. Dafür würde ich vorschlagen, diesen Code in Ihrem html '' es ruft checkpnummer() -Funktion, wenn die Schaltfläche geklickt wird. –

+0

Es ist nicht erlaubt, Knöpfe zu verwenden, um zu überprüfen, ob die Eingabe korrekt ist. Nur der reguläre Ausdruck sollte mit der Eingabe überprüft werden. Wenn die Eingabe korrekt ist, erhält das Eingabefeld die Farbe Grün und ansonsten die Farbe Rot. Dies ist ein Code, den ich für CSS verwendet habe, aber ich konnte keinen Code finden, um diesen Code mit HTML (Eingabefelder) und js (regulärer Ausdruck) zu verknüpfen, also habe ich ihn nicht benutzt. Eingabe: ungültig { background-color: #ffdddd; } Eingabe: gültig { background-color: #ddffdd; } – Maaike

0

var pnummer = document.getElementById("pnummer").value und versuchen, diesen Code if(pnummer.match(/^([0-9]a{8})$/)) { //true } else { //false } der String Match 0aaaaaaaa ist, 1aaaaaaaa etc

Verwandte Themen