onclick auf input type image verursacht Formular Absenden
Szenario
Ich habe dieses Formular:
<form action="EditShippingInfo.asp" method="POST" id="frmShippingInfo">
<!-- stuff -->
<input type="image" id="EditShippingInfo" onclick="javascript:checkShippingInfo(this.form);" src="/img/btn_save.gif" />
</form>
Den checkShippingInfo
- Funktion ausgeführt wird, einige Eingabe-überprüfung-Kontrolle. Schließlich läuft es eine serverseitige Kontrolle über AJAX:
function checkShippingInfo(form){
/* runs validation controls */
var data = setDataForAjax;
$.ajax({
type: 'GET',
url: '/include/checkAddresses.asp',
data: data,
async: false,
success: function (m) {
if (m == 0) {
/* I want to run form.submit only if m=0 */
form.submit();
}
else {
/* otherways I display a message */
alert(m);
return false;
}
}
});
}
Aber die form submit ausgelöst wird sowieso, auch wenn m!=0.
Frage
Will ich auslösen form.submit
nur unter einer bestimmten Bedingung.
Tut input type="image"
auslösen reichen in anycase?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Tatsache
Das onclick-Ereignis auf ein submit-input ist immer auslösen das Formular Absenden.
, Es sei denn, der onclick-event-handler explizit zurück
FALSE
.Danach zwei wichtige details fehlen in meinem code.
Die Lösung
Den
return
Schlüsselwort in der onclick-event-handler.onclick="javascript:return checkShippingInfo(this.form);"
Den
return
Wert in dercheckShippingInfo
Funktion..
image
undsubmit
input geben, als auch. Wie auch immer, von MDN-Artikel: 'Bild: Einen grafischen submit-button.'. Und von W3C: 'Erstellt einen grafischen submit-button.'