jQuery 대화 상자 버튼이 무시되었습니다. 계속해서 양식을 제출하세요.
P粉832212776
P粉832212776 2023-08-15 12:55:00
0
1
457

다음과 같은 양식 코드가 있고 자바스크립트 코드는 아래와 같습니다. 문제는 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){ 사실을 반환; } 또 다른 { 거짓을 반환; } */ }
//일부 div
<본문>
<본문>


P粉832212776
P粉832212776

모든 응답 (1)
P粉764836448

댓글에서도 언급했듯이 대화상자는 UI를 차단하지 않기 때문에 대화상자가 표시될 때 양식 제출을 방지해야 합니다. 중지하지 않는 한 계속해서 제출됩니다. 대화 상자에서 버튼을 누른 후 실제로 양식을 제출할 수 있습니다.

이제 까다로운 점은 실제로 양식을 제출할 때onsubmit기능이 다시 실행된다는 것입니다! 좋은 방법은 플래그를 설정하는 것입니다. 기본적으로 원하는 작업을 수행하는 아래 의사코드를 참조하세요.

으아악 으아악
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!

    -