Nachdem Sie im jQuery-Dialogfeld auf die Schaltfläche „Speichern' geklickt haben, erfolgt beim Absenden des Formulars keine Antwort
P粉207969787
2023-08-13 15:02:29
<p>Ich habe ein Formular in JSP und den folgenden Code in JavaScript. Das Problem, mit dem ich konfrontiert bin, ist folgendes: </p>
<p>Wenn ich auf die Schaltfläche „Speichern“ klicke und die Bedingung <code>if(speciesid === 2){</code> erfüllt ist, klicke ich in der jQuery auf <code>„Speichern“< Wenn Sie auf die Schaltfläche „/code>“ klicken, wird der Controller nicht ausgelöst. Es funktioniert jedoch einwandfrei und löst meinen Controller aus, solange die Bedingung <code>if(speciesid === 2){</code> nicht erfüllt ist. Ich habe einige Zweifel an dieser Zeile <code>" document.getElementById("orderForm").submit();"</code>. Kann jemand sehen, was mit meinem Code nicht stimmt? Um übermäßigen Codeinhalt zu vermeiden, wurde auf andere Formularfelder verzichtet. </p>
<pre class="brush:php;toolbar:false;"><form:form method="POST" modelAttribute="orderForm"
onsubmit="return validateOrderForm(this)">
<form:errors path="*" cssClass="errorblock" element="div" />
<form:hidden path="choiceBstatus" />
<c:if test="${Species.speciesID == 2}">
<div id="checklist_dialog" title="Neuer Eintrag">
<Formular>
<p>
Name:
<input type="text" name="name" />
</p>
<p>Gruppe:
</p>
</form>
</div>
</c:if>
<table class="noPrint">
<tr>
<td align="center"><br /> <input onclick="formSaveButton()" class="button" type="submit"
name="speichern" value="Speichern" /> - <input class="button" type="submit"
name="cancel" value="Cancel" onclick="bCancel = true;" /></td>
</tr>
</table>
</form:form>
<script type="text/javascript">
$('#checklist_dialog').hide();
Funktion formSaveButton(){
getSpeciesID('<c:out value="${Species.speciesID}"/>');
getChoiceBStatus('<c:out value="${orderForm.choiceBstatus}"/>');
}
Funktion getSpeciesID(speciesid){
console.log("Arten-ID");
console.log(speciesid);
if(speciesid === 2){
var selectedVal = "";
var selected = $("input[type='radio'][name='sampleChoice']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
console.log(selectedVal);
}
$('#checklist_dialog').dialog({
modal: wahr,
Überlagerung: {
Deckkraft: 0,7,
Hintergrund: „schwarz“
},
Tasten: {
„SPEICHERN“: function() {
$(this).dialog('close');
$("#choiceBstatus").val("true");
document.getElementById("orderForm").submit();
},
„ABBRECHEN“: function() {
$(this).dialog('close');
Alert("Sie müssen die Checkliste ausfüllen/speichern, bevor Sie Ihr Formular speichern!");
$("#choiceBstatus").val("false");
}
}
});
}
}
Funktion getChoiceBStatus(status){
console.log("Choice B Status");
console.log(status);
}
</script></pre>
<p><br /></p>
从我所看到的情况来看,您在表单上缺少了id,
document.getElementById("orderForm")
通过选择具有匹配id的HTML元素来工作,在这里是"orderForm"
。然而,您的HTML表单没有指定任何id。 请尝试更新表单以包括以下id。