다음과 같은 양식 코드가 있고 자바스크립트 코드는 아래와 같습니다. 문제는 validateDialogForm()
을 실행할 때 특정 조건이 충족되면 jquery 대화 상자가 표시된다는 것입니다. 실제로 대화 상자가 몇 초 동안 나타나는 것을 볼 수 있지만 거기에 머물지 않고 양식이 계속 제출됩니다. 양식이 일정 기간 동안 일시 중지되고 사용자가 <코드>저장 버튼을 클릭할 때만 제출되기를 원합니다. 양식이 제출되는 것을 방지하기 위해 validateDialogForm()
함수가 끝나기 전에 return false;
양식 제출은 계속되지 않지만 그대로 유지됩니다. 내가 여기서 뭘 잘못하고 있는 걸까? 아래 코드의 현재 상태는 jquery 대화 상자에 관계없이 양식이 계속 제출된다는 것입니다.(为了清晰起见,删除了很多不同关的代码)
$('#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){ 사실을 반환; } 또 다른 { 거짓을 반환; } */ }