サーバー上でまったく同じスクリプトを実行すると正常に動作することを除いて、他に追加することはあまりありません。検証は、エラーの場合とフォームの送信時に機能します。ただし、便宜上、xampp、localhost を介してプロジェクトに取り組むこともあります。問題は、submitHandler がまったく起動しないことです。エラーが機能しないため、検証プラグインが正しく設定されていない場合ではありません。以下のコードを添付しました
function registerpage(){
//******** Registration page functions *******//
$("#dob").datepicker({dateFormat:"dd/mm/yy"}); // date picker plugin
$("#register_form").validate({
errorClass : "invalid",
invalidHandler:function(event, validator) {$('html, body').animate({scrollTop: '0px'}, 300);},
submitHandler: registeruser,
onfocusout: false,
onkeyup: false,
onclick: false,
rules: {
firstname: {
required : true
},
lastname: {
required : true
},
email:{
required: true,
email: true,
remote: {
url: "/actions/emailcheck.php",
async: false,
type: "post"
}
},
password:{
required:true,
minlength: 5
},
repeat:{
required: true,
equalTo: "#password"
},
postcode:{
required: true,
number: true,
minlength: 4
},
"sport[]":{
required: true
},
dob : {
required: true,
date: true
}
},
messages : {
firstname: {
required : "Enter your first name"
},
lastname: {
required : "Enter your last name"
},
email:{
required: "Enter your email",
email:"Enter a valid email",
remote: "Email already in use"
},
password:{
required:"Enter a password", minlength: "Password must be 5 characters long"
},
repeat:{
required: "Enter a confirmation password", equalTo: "Repeated password does not match"
},
postcode:{
required: "Enter postcode",
number: "Post code must be 4 digit number",
minlength: "Post code must be 4 digit number"
},
dob:{
required: "Enter date of birth",
date: "Enter valid date of birth"
},
"sport[]": {
required: "Select at least one sport"
}
},
errorContainer: $(".errorCont"),
errorLabelContainer: $('.errorCont ul'),
wrapper: 'li'
});
/*Add user to database*/
function registeruser(){
// submit user
disablebtn($("#regbtn"));
var frmsrl = $("#register_form").serialize();
$.post('actions/action.php',frmsrl,
function(data){
//successfully registered
showpopup("reg");
});
}
}
サーバーでは機能するのにローカルホストでは機能しない理由について、本当に混乱しています。エラーが正常に機能するため、呼び出されないのは submitHandler だけです。