jQuery ダイアログ ボックスで保存ボタンをクリックした後、フォームを送信しても応答がありません
P粉207969787
2023-08-13 15:02:29
<p>JSP のフォームと JavaScript の次のコードがあります。私が直面している問題は次のとおりです: </p>
<p>保存ボタンをクリックすると、<code>if(speciesid === 2){</code> 条件が満たされ、jQuery から <code>"Save"< をクリックします。ダイアログの /code> ボタンを押しても、コントローラーはトリガーされません。ただし、<code>if(speciesid === 2){</code> 条件が満たされない限り、これは正常に動作し、コントローラーをトリガーします。この行 <code>" document.getElementById("orderForm").submit();"</code> についていくつか疑問があります。私のコードのどこが間違っているのかわかる人はいますか?過剰なコード内容を避けるために、他のフォームフィールドは省略されています。 </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="新規エントリ">
<フォーム>
<p>
名前:
<input type="text" name="name" />
</p>
<p>グループ:
</p>
</フォーム>
</div>
</c:if>
<テーブルクラス="noPrint">
<tr>
<td align="center"><br /> <input onclick="formSaveButton()" class="button" type="submit"
name="保存" value="保存" /> - <input class="button" type="submit"
name="キャンセル" value="キャンセル" onclick="bキャンセル = true;" />
</tr>
</テーブル>
</フォーム:フォーム>
<スクリプトタイプ="text/javascript">
$('#checklist_dialog').hide();
関数 formSaveButton(){
getSpeciesID('<c:out value="${Species.speciesID}"/>');
getChoiceBStatus('<c:out value="${orderForm.choiceBstatus}"/>');
}
関数 getSpeciesID(speciesid){
console.log("種 ID");
console.log(種ID);
if(種ID === 2){
var selectedVal = "";
var selected = $("input[type='radio'][name='sampleChoice']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
console.log(selectedVal);
}
$('#checklist_dialog').dialog({
モーダル: true、
かぶせる: {
不透明度: 0.7、
背景:「黒」
}、
ボタン: {
"保存": function() {
$(this).dialog('close');
$("#choiceBstatus").val("true");
document.getElementById("orderForm").submit();
}、
"キャンセル": function() {
$(this).dialog('close');
alert("フォームを保存する前に、チェックリストを完了/保存する必要があります!");
$("#choiceBstatus").val("false");
}
}
});
}
}
関数 getChoiceBStatus(ステータス){
console.log("選択肢 B のステータス");
console.log(ステータス);
}
</script></pre>
<p><br /></p>
私が見る限り、フォームに ID がありません。
ただし、HTML フォームでは ID が指定されていません。 次の ID を含めるようにフォームを更新してみてください。
リーリーdocument.getElementById("orderForm")
は、一致する ID (この場合は # #) を持つ HTML 要素を選択することで機能します。 #"注文書"###。