只是尝试使用ajax而不是动作来提交表单,但仍然没有运气。 PHP脚本工作,并一直在测试通过动作提交。
到目前为止,我看过例子,阅读文档,询问SO问题,但我仍然没有答案。我需要帮助,我原本打算两周前测试这个用例。
当我提交页面时看起来它刷新但没有任何反应。用户帐户未插入数据库,并且不显示警告框。 任何人都可以看到出了什么问题吗?
javascript看起来像这样:
$(document).ready(function()
{
$.validator.addMethod("uniqueuser", function(username){
var response
$.ajax({
type: "POST",
url: "check_username.php",
data: "username=" + username,
success: function(server_response){
if(server_response == '0'){
response = true;
}
else if(server_response == '1'){
response = false;
}
}
});
return response;
}, "Username is not available");
$("#createaccount).validate({
debug: false,
rules:{
fname:{
required: true
}
surname:{
required: true
}
email:{
email:true,
required: true
}
location:{
required:true
}
username:{
minlength: 6,
required:true,
uniqueuser:true
}
password:{
required:true,
minlength: 6
}
re_password:{
required:true,
equalTo: "#password"
}
}
submitHandler: function(form){
$.ajax({
type: 'POST',
url: 'createaccount2.php',
data: $("#createaccount").serialize(),
success: function(response){
if(response == "1"){
alert("That username is already taken!");
}
else if(response == "2"){
alert("An account is already registered to that email address");
}
else if(response == "3"){
alert("Your account has been created!");
}
else if(response == "4"){
alert("Something went wrong, your account could not be created");
}
}
});
});
});
});
答案 0 :(得分:1)
脚本中存在许多问题。所有这些都与您正在使用的验证器插件明显相关。一个是ASYNCHRONOUS CALLs。
当你使用$.validator
时(我不知道这个插件,你可以添加引用吗?)你试着设置ASYNC的return response;
。 (在AJAX获得服务器响应之后)。这就是AJAX具有回调函数的原因,因为你不知道什么时候会被设置。
发生了什么?在AJAX get完成之前执行return
并修改变量(但范围很好)。
修复?您需要深入了解该验证器插件,看看它是否支持异步验证。
否则,您需要设置自己的脚本验证。
答案 1 :(得分:0)
您如何将表格提交与表格相关联?你需要在Form onSubmit事件中做些什么吗?或使用Submit事件处理程序?
<form id="target" action="destination.html">
就像这样
$('#target').submit(function() {
alert('Handler for .submit() called.');
return false;
});
答案 2 :(得分:0)
<form id="target" onSubmit="return false;">