我有一個註冊頁面,我使用Ajax發佈數據到一個php頁面。我有表單驗證如下:jquery - 表單驗證打破ajax後
firstname = $("#firstname").val();
if(firstname === '') {
$("#error").empty().append("Please enter a first name.");
$("#firstname").css("border-color", "#FF5454");
return false;
}
我提交的變量在Ajax崗位如下:
jQuery.ajax({
type: "POST",
url: "/includes/register_process.php",
data:'gender=' + gender + '&firstname=' + firstname + '&surname=' + surname
+ '&studentno=' + studentno + '&email=' + email + '&password=' + password
+ '&confirmpwd=' + confirmpwd,
etc etc.
我想改變驗證上面的如下:
firstname = $("#firstname").val();
if(firstname === '') {
$("#error").empty().append("Please enter a first name.");
$("#firstname").css("border-color", "#FF5454");
return false;
} else {
$("#error").hide();
$("#firstname").css("border-color", "#4DC742");
return true;
}
這似乎打破了Ajax的帖子,因爲它似乎沒有將數據發佈到php頁面。
任何人都可以給我一些提示,說明爲什麼這種改變會導致Ajax文章無法工作?我是使用Ajax的初學者。
謝謝。
編輯1:
<script>
$(document).ready(function() {
$("#FormSubmit").click(function (event) {
event.preventDefault();
gender = $('#gender option:selected').val();
if (gender === 'null') {
$("#error").empty().append("Please select a gender.");
$("#gender").css("border-color", "#FF5454");
return false;
} else {
$("#error").hide();
$("#gender").css("border-color", "#4DC742");
return true;
}
firstname = $("#firstname").val();
if(firstname === '') {
$("#error").empty().append("Please enter a first name.");
$("#firstname").css("border-color", "#FF5454");
return false;
}
surname = $("#surname").val();
if(surname === '') {
$("#error").empty().append("Please enter a surname.");
$("#surname").css("border-color", "#FF5454");
return false;
}
studentno = $("#studentno").val();
if(studentno === '') {
$("#error").empty().append("Please enter a student number.");
$("#studentno").css("border-color", "#FF5454");
return false;
}
email = $("#email").val();
if(email === '') {
$("#error").empty().append("Please enter an e-mail address.");
$("#email").css("border-color", "#FF5454");
return false;
}
password = $("#password").val();
if(password === '') {
$("#error").empty().append("Please enter a password.");
$("#password").css("border-color", "#FF5454");
return false;
}
if (password.length < 6) {
$(".sad-feedback").empty().append("Passwords must be at least 6 characters long. Please try again.");
$("#password").css("border-color", "#FF5454");
return false;
}
confirmpwd = $("#confirmpwd").val();
if(confirmpwd === '') {
$("#error").empty().append("Please enter a password confirmation.");
$("#confirmpwd").css("border-color", "#FF5454");
return false;
}
if(password != confirmpwd) {
$(".sad-feedback").empty().append("Your password and confirmation do not match. Please try again.");
$("#password").css("border-color", "#FF5454");
$("#confirmpwd").css("border-color", "#FF5454");
return false;
}
jQuery.ajax({
type: "POST",
url: "/includes/register_process.php",
data:'gender=' + gender + '&firstname=' + firstname + '&surname=' + surname + '&studentno=' + studentno + '&email=' + email + '&password=' + password + '&confirmpwd=' + confirmpwd,
success:function(response){
$("#hide").hide();
$("#register-button").hide();
$("#FormSubmit").hide();
$("#error").hide();
$("#success").append('Thank you for your registration. You can now sign in to your account.');
$("#success-button").show();
},
error:function (xhr, ajaxOptions, thrownError){
$("#error").empty().append(thrownError);
}
});
});
});
</script>
編輯2:
<script>
$(document).ready(function() {
$("#FormSubmit").click(function (e) {
e.preventDefault();
var hasError = false;
gender = $('#gender option:selected').val();
if (gender === 'null') {
$("#error").empty().append("Please select a gender.");
$("#gender").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#gender").css("border-color", "#4DC742");
hasError = false;
}
firstname = $("#firstname").val();
if(firstname === '') {
$("#error").show();
$("#error").empty().append("Please enter a first name.");
$("#firstname").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#firstname").css("border-color", "#4DC742");
hasError = false;
}
surname = $("#surname").val();
if(surname === '') {
$("#error").show();
$("#error").empty().append("Please enter a surname.");
$("#surname").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#surname").css("border-color", "#4DC742");
hasError = false;
}
studentno = $("#studentno").val();
if(studentno === '') {
$("#error").show();
$("#error").empty().append("Please enter a student number.");
$("#studentno").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#studentno").css("border-color", "#4DC742");
hasError = false;
}
email = $("#email").val();
if(email === '') {
$("#error").show();
$("#error").empty().append("Please enter an e-mail address.");
$("#email").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#email").css("border-color", "#4DC742");
hasError = false;
}
password = $("#password").val();
if(password === '') {
$("#error").show();
$("#error").empty().append("Please enter a password.");
$("#password").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#password").css("border-color", "#4DC742");
hasError = false;
}
if (password.length < 6) {
$("#error").show();
$(".sad-feedback").empty().append("Passwords must be at least 6 characters long. Please try again.");
$("#password").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#password").css("border-color", "#4DC742");
hasError = false;
}
confirmpwd = $("#confirmpwd").val();
if(confirmpwd === '') {
$("#error").show();
$("#error").empty().append("Please enter a password confirmation.");
$("#confirmpwd").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#confirmpwd").css("border-color", "#4DC742");
hasError = false;
}
if(password != confirmpwd) {
$("#error").show();
$(".sad-feedback").empty().append("Your password and confirmation do not match. Please try again.");
$("#password").css("border-color", "#FF5454");
$("#confirmpwd").css("border-color", "#FF5454");
hasError = true;
} else {
$("#error").hide();
$("#confirmpwd").css("border-color", "#4DC742");
hasError = false;
}
if(hasError == false){
jQuery.ajax({
type: "POST",
url: "http://test.student-portal.co.uk/includes/register_process.php",
data:'gender=' + gender + '&firstname=' + firstname + '&surname=' + surname + '&studentno=' + studentno + '&email=' + email + '&password=' + password + '&confirmpwd=' + confirmpwd,
success:function(response){
$("#hide").hide();
$("#register-button").hide();
$("#FormSubmit").hide();
$("#error").hide();
$("#success").append('Thank you for your registration. You can now sign in to your account.');
$("#success-button").show();
},
error:function (xhr, ajaxOptions, thrownError){
$("#error").show();
$("#error").empty().append(thrownError);
}
});
}
return true;
});
});
</script>
你檢查你的瀏覽器控制檯,看看是否有任何JS錯誤/消息? – Sean
是的,根本沒有錯誤/消息。 –