jQuery 대화 상자 버튼이 무시되었습니다. 계속해서 양식을 제출하세요.
<p>다음과 같은 양식 코드가 있고 자바스크립트 코드는 아래와 같습니다. 문제는 <code>validateDialogForm()</code>을 실행할 때 특정 조건이 충족되면 jquery 대화 상자가 표시된다는 것입니다. 실제로 대화 상자가 몇 초 동안 나타나는 것을 볼 수 있지만 거기에 머물지 않고 양식이 계속 제출됩니다. 양식이 일정 기간 동안 일시 중지되고 사용자가 <코드>저장</code> 버튼을 클릭할 때만 제출되기를 원합니다. 양식이 제출되는 것을 방지하기 위해 <code>validateDialogForm()</code> 함수가 끝나기 전에 <code>return false;</code> 양식 제출은 계속되지 않지만 그대로 유지됩니다. 내가 여기서 뭘 잘못하고 있는 걸까? 아래 코드의 현재 상태는 jquery 대화 상자에 관계없이 양식이 계속 제출된다는 것입니다.(为了清晰起见,删除了很多不同关的代码)</p>
<p><br /></p>
<pre class="brush:js;toolbar:false;">$('#checklist_dialog').hide();
함수 verifyDialogForm() {
$('#checklist_dialog').show();
var isConfirmed = false;
//STEP:1 옵션 B가 선택되었는지 확인합니다.
var selectedVal = "";
var selected = $("input[type='radio'][name='sampleChoice']:checked");
if (선택된 길이 > 0) {
selectedVal = selected.val();
console.log("선택한 옵션은 " + selectedVal);
}
if (selectedVal === "choiceB") {
if ($("#choiceBstatus").val() === "true") {
//대화상자 표시
$('#checklist_dialog').dialog({
모달: 사실,
최대 너비: 600,
최대 높이: 500,
폭: 600,
높이: 500,
오버레이: {
불투명도: 0.7,
배경: "검은색"
},
버튼: {
"저장": 함수() {
$(this).dialog('닫기');
Alert("클릭한 SAVE 버튼 내부");
$("#choiceBstatus").val("false");
//isConfirmed = true;
사실을 반환;
},
"취소": 함수() {
$(this).dialog('닫기');
Alert("양식을 저장하기 전에 체크리스트를 완료/저장해야 합니다!");
// 거짓을 반환합니다;
}
}
});
/* e.preventDefault();
거짓을 반환; */
} //if($("#choiceBstatus").val() == true ){의 끝
if ($("#choiceBstatus").val() === "false") {
// 참을 반환합니다;
}
} //if(selectedVal === "choiceB")의 끝{
//거짓을 반환;
/* if(isConfirmed){
사실을 반환;
}
또 다른 {
거짓을 반환;
}
*/
}</pre>
<pre class="brush:html;toolbar:false;"><form id="orderForm" action="/mywebsite/order.htm" method="POST" onsubmit="return (validateOrderForm(this) & ;&validateDialogForm())">
<input id="choiceBstatus" name="choiceBstatus" type="hidden" value="true">
<div id="ownerDisplayFields" style="visibility: visible;">
<table class="noPrint">
//일부 div
</tbody>
</테이블>
</div>
<div id="pManualTitle" style="display: block">
<table class="noPrint">
<본문>
</tbody>
</테이블>
</div>
<div id="checklist_dialog" title="새 제목" style="display: none;">
<p>체크리스트 1이 여기에 표시됩니다</p>
<p>체크리스트 2가 여기에 표시됩니다</p>
</div>
<table class="noPrint">
<본문>
<tr>
<td align="center"><br>
<input class="button" type="submit" name="save" value="Save"> - <input class="button" type="submit" name="cancel" value="Cancel" onclick="bCancel = true;">
</td>
</tr>
</tbody>
</테이블>
<div></div>
<p><br /></p>