javascript ändern der form onsubmit dynamisch
Ich habe ein Formular mit einigen action-und onsubmit-Werte, die übermittelt wird durch einen submit-input-tag. Das problem ist, dass es sein sollte submittable mit zwei Knöpfen, also schrieb ich eine Funktion für die zweite Schaltfläche, um die Aktion zu ändern und onsubmit-Werte der form:
<a href="javascript:submitCompare()" class="submit">Compare</a>
function submitCompare()
{
document.myForm.action = "anotherAction.php";
document.myForm.onsubmit = function() {return countChecked()};
document.myForm.submit();
}
function countChecked()
{
var n = $(".reports input:checked").length;
if (n >= 3 ) {
alert ('You must select less than 3 reports.');
return false;
}
else return true;
}
Nach einem Klick auf den Vergleichen-link sendet er mir die anotherAction.php Seite richtig, aber auch wenn ich mehr als 2 ausgewählten Checkboxen (das ist die Validierungsregel). Kann jemand mir helfen das onsubmit-Funktion korrekt?
Nur eine Randbemerkung, ich denke
(n > 2)
ist genug, statt (n >= 3)
InformationsquelleAutor user1507558 | 2012-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
In
submitCompare()
Sie ausdrücklich und bedingungslos rufenWas Sie wahrscheinlich wollen, statt es
vergessen Sie nicht zu akzeptieren, die richtige Antwort 😉 (Häkchen auf der linken Seite)
InformationsquelleAutor Otto Allmendinger
sollte
Rückgabe von false auf senden wird am Ende nur weitere Ausführung der Funktion. Sie möchten preventDefault Einreichung Verhalten, wenn Sie nicht wollen, es zu senden.
Vielleicht ist es Ihr countChecked Funktion. versuchen Sie dabei einige Konsole.log zu sehen, wenn es um die richtige Menge der aktivierten Checkboxen
countChecked() wieder korrekte Werte. Ich weiß wirklich nicht, warum deine Lösung nicht funktioniert hat, aber @Otto Allmendinger bekam es das richtige für mich, also, der Fall ist abgeschlossen 🙂
InformationsquelleAutor Trevor
Es ist eine späte Antwort, aber falls jemand anderes suchen...
statt:
Ich denke Sie wollte:
InformationsquelleAutor Vlad