Checkbox Wert nicht ändern von false in true, wenn die Option aktiviert ist
Diese javascript-Funktion findet den Fehler in form und listet Sie auf. Wenn Fehler vorhanden sind, wird ein Fehler überschreiben Kontrollkästchen, damit die Vorlage auch mit Fehlern. Derzeit wird der code nicht erkennen, wenn die checkbox aktiviert ist. Offenbar ist die erste if-Anweisung ist immer gefunden, um wahr zu sein. Ideen?
function check1()
{
//c_ierrors is the id of the input tag inserted below within the c_erros div
if( document.getElementById("c_ierrors")==null || document.getElementById("c_ierrors").checked!="true" )
{
//if javascript generated form error overide checkbox does not exist or exists but is not true then list errors and don't submit the form
//code to generate divs listing errors
//
if(error=="")
{
//submit form
return true;
}
else
{
error += "<div id=\"c_erow\"><input type=\"checkbox\" id=\"c_ierrors\" name=\"override\" value=\"y\" >Override Errors</div>" //add checkbox to submit form despite errors
document.getElementById("c_errors").innerHTML=error;
alert (document.forms["cform"]["override"].checked);
return false; //stay on page don't submit form
}
}
else
{
//if override checkbox (exists) and is true
return true;
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist der zweite Teil der ersten if-Anweisung vergleichen Sie
Vergleich ein boolean in einen string gibt man das falsche Ergebnis. Dies können Sie in Ihrem JavaScript-Konsole mit,
Müssen Sie entweder zu vergleichen, um
true
oder es einfach verwenden, als einen booleschen Wert. E. g.oder
Zu finden, wenn es geprüft, Sie brauchen nicht zu beurteilen, ob es wahr ist oder nicht, insbesondere mit einem String-Wert.
Brauchen Sie nur zu finden, wenn es
.checked
Wenn Sie wollen, zu finden, wenn es nicht
.checked
verwenden Sie einfach:Vollständige code:
Dass wird gut funktionieren
jsFiddle