behalten form Werte onclick-nach-javascript-Validierung schlägt fehl
Dies ist Teil einer Aufgabe. Alles, was funktionieren soll, funktioniert bereits, aber es gibt etwas, dass mich stört. Der einzige Zweck, den code so weit ist, testen Sie unsere Fähigkeit zur Validierung von Daten. Trotzdem, gerade jetzt in der validate () - Funktion angeschlossen ist, um einen submit-button:
<input type="submit" value="Find Love" onclick="validate()">
Wenn jeder die Validierung fehl, werden alle Textfelder, drop-downs, etc.. gelöscht werden, aber ich will Sie behalten Ihre Werte und konzentrieren Sie sich nur auf die ersten falschen Wert (unter Beibehaltung Ihrer Werte wichtiger ist mir an dieser Stelle). Die eigentliche Macht, erfordern einige änderungen der onclick-Funktion oder eine andere Funktion alle zusammen? Bitte helfen Sie. Wenn Sie brauchen, um zu sehen, den javascript kann ich post, dass, wie gut.
function validate()
{
var blnValid = true;
if(isBlank("txtFName"))
{
blnValid = false;
alert("First name cannot be blank!")
document.getElementById("txtFName").focus();
}
if(blnValid)
{
if(isBlank("txtLName"))
{
blnValid = false;
alert("Last name cannot be blank!")
document.getElementById("txtLName").focus();
}
}
if(blnValid)
{
if(isBlank("txtAge"))
{
blnValid = false;
alert("Age cannot be blank!")
document.getElementById("txtAge").focus();
}
}
if(blnValid)
{
var strInput = document.getElementById("txtAge").value;
if(!isInt(strInput))
{
blnValid = false;
alert("You must enter a valid number in the age field.")
document.getElementById("txtAge").select();
}
}
if(blnValid)
{
if(document.getElementById("selUserGender").selectedIndex <= 0)
{
alert("Please select your gender");
blnValid = false;
}
}
if(blnValid)
{
if(document.getElementById("selFindGender").selectedIndex <= 0)
{
alert("Please select your gender");
blnValid = false;
}
}
if(blnValid)
{
blnChecked = false;
arRadio = document.forms[0].rdbAgeRange;
for (var i = 0; i < arRadio.length; i++)
{
if(arRadio[i].checked)
{
blnChecked = true;
break;
}
}
if (!blnChecked)
{
alert("You must select an age group.");
blnValid = false;
}
}
if(blnValid)
{
if(!document.getElementById("chkSkeeball").checked
&& !document.getElementById("chkAir").checked
&& !document.getElementById("chkCliff").checked
&& !document.getElementById("chkHamster").checked)
{
blnValid = false;
alert("You must select a hobby.")
}
}
return blnValid;
}
function isInt(strValue)
{
var validNums = "0123456789";
var blnIsNumber = true;
var tempChar;
for (var i = 0; i < validNums.length; i++)
{
tempChar = strValue.substr(i, 1);
if (validNums.indexOf(tempChar) == -1)
{
return false;
}
}
return true;
}
function isBlank(elementID)
{
if(document.getElementById(elementID).value.length == 0)
{
return true;
}
return false;
}
Bitte nicht. Wahrscheinlich gibt es eine Zeile gibt, löscht die Eingabe.
InformationsquelleAutor webhound | 2011-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist eigentlich den HTML-Code. Nichts in Ihrem Javascript wird zum löschen der Elemente, aber da bist du mit onClick das Formular tatsächlich abschicken sowieso. Ich gehe davon aus, dass es wahrscheinlich nur sendet Sie zurück zu der Seite und löscht alles. Statt onClick verwenden onSubmit im form-element:
Wenn es nicht gültig ist, wird es verhindern, dass die form von der Abgabe.
erhalten Sie die alert-Boxen überhaupt?
Wissen Sie, ich habe es gerade erneut versucht (ich habe nicht sah es seit gestern), und es funktioniert. Danke! Jetzt brauche ich nur um die Forschung, die Aktion Wert.
Ich kann nicht wählen Sie Ihre Antwort, meine rep ist nicht hoch genug, oder so etwas. Auch, gibt es eine einfache Möglichkeit zum einbetten von code in diesen Kommentar-Boxen?
Der action-Wert sollte auf eine URL, die Prozesse Ihrer form. (In der Regel eine Datei geschrieben, die in einem server-Seite Sprache wie PHP). Wenn das Objekt der Unterrichtsstunde ist die Javascript-es ist ok, lassen Sie es leer.
InformationsquelleAutor Cfreak
Fehlt ein Semikolon:
InformationsquelleAutor stealthyninja