현재 HTML 양식에 문제가 있습니다. 양식 (규칙은 HTML 5 코드에 있음)의 유효성을 검사하고 $ .ajax 호출을 사용하여 처리 할 PHP 스크립트에 제출합니다. 목표는 제출하기 전에 다양한 필드가 채워 졌는지 확인하고, ajax를 사용하여 추가 오류 (사용자 존재, 사용중인 이메일, 웹 개발자는 단정 한 것 등)를 인쇄하는 것입니다. 그렇지 않으면 모든 것이 작동하면 폼을 숨기고 확인 메시지를 표시합니다.
아래 코드를 사용하면 유효성 검사가 올바르게 수행되지만 $ .ajax 호출은 수행되지 않습니다. 양식의 기본 동작이 발생합니다. 그러나 유효성 검사 함수와 그 submitHandler (및 닫는 중괄호)를 주석 처리하면 양식 제출이 정상적으로 작동합니다. 나는 며칠 동안 이것을 상대로 운이 좋지 않은 머리를 때렸다. 누구든지 제공 할 수있는 도움이나 통찰력이 있으면 크게 감사하겠습니다.
이것은 내가 실행중인 javascript입니다.
<script type="text/javascript">
$(document).ready(function() {
$("#Submit").click(function() {
$("#mrf").validate({
submitHandler: function() {
// Begin the submit handler function
var action = $("#mrf").attr('action');
var msg_success = '<p style="font-weight: bold;">Your registration was successful! You should receive a welcome email shortly.</p>';
var form_data = {
Surname: $("#Surname").val(),
First_Name: $("#FirstName").val(),
Other_Names: $("#OtherNames").val(),
Address: $("#Address").val(),
Suburb: $("#Suburb").val(),
State: $("#State").val(),
Postcode: $("#Postcode").val(),
Email: $("#Email").val(),
Username: $("#Username").val(),
INSTEP: $("#INSTEP").val(),
Mobile: $("#Mobile").val(),
Cohort: $("#Cohort").val(),
Academy: $("input:radio[name=Academy]:checked").val(),
University: $("#University").val(),
Program: $("#Program").val(),
NonUni: $("#NonUni").val(),
Mentoring: $("input:checkbox[name=Mentoring]:checked").val(),
CAS: $("input:checkbox[name=CAS]:checked").val(),
Motivational_Speaking: $("input:checkbox[name=MotivationalSpeaking]:checked").val(),
Workshops: $("input:checkbox[name=Workshops]:checked").val(),
Tutoring: $("input:checkbox[name=Tutoring]:checked").val(),
Newsletter: $("input:checkbox[name=Newsletter]:checked").val(),
is_ajax: 1
};
$.ajax({
type: "post",
url: action,
data: form_data,
success: function(response) {
if(response == 'success') {
$("#mrf-form").slideUp('slow', function() {
$("#ajaxResponse").html(msg_success);
});
}
else {
$('#ajaxResponse').html("<p class='error'>" + response + "</p>");
}
}
});
// End the submit handler function
}
});
return false;
});
});
</script>
제안 해 주셔서 감사합니다. Firebug를 사용하여 스크립트를 디버깅했으며, 오류가 에서 발생했다는 것을 확인했습니다. submitHandler : function() {' 가능한 한 단계를 밟았으며 jquery 라이브러리의이 코드로 이동합니다. 'jQuery .event.dispatch.apply (eventHandle.elem, arguments) : undefined; ' 어느 지점에서 실행이 중지 되었는가? (편집 내용을 주석 처리 한 경우 기본 제출 기능이 호출되었습니다). 이 문제를 어떻게 해결해야할지 모르겠다. 구문 오류라고 생각 하나? 양식 데이터가 전달되지 않았습니다. 나는 계속 볼거야. – Dorgrin
도움이 되니 기뻤습니다 :) 이것이 당신의 대답이었습니다. –