【发布时间】:2014-09-04 07:24:23
【问题描述】:
我的 ajax 代码如下所示,它检查注册表单用户名、电子邮件等...
jQuery(document).ready(function($) {
$("#formform").on('change', 'input',function(event){
var $form = $(this);
var $inputs = $form.find("input, select, button, textarea");
var serializedData = $form.serialize();
$inputs.prop("disabled", true);
request = $.ajax({
url: "/registration_check.php",
type: "post",
data: {formData:serializedData},
datetype: "JSON"
});
request.done(function (response, textStatus, jqXHR){
console.log(response);
});
request.fail(function (jqXHR, textStatus, errorThrown){
console.log("error");
});
request.always(function () {
$inputs.prop("disabled", false);
});
event.preventDefault();
});
});
我的 PHP 看起来像这样:
$get_form_data=$_POST["formData"];
parse_str($get_form_data,$form_data);
if(isset($form_data["username"])){
if(strlen($form_data["username"])<5){
echo "Username must be at least 5 character";
}else{
if(ValidUserName($form_data["username"])){
if($checkUser->checkUserName(char_encoder($form_data["username"]))==true){
echo "Sorry this UserName Already Exist";
}else{
echo "UserName Available";
};
}else{
echo "Invalid Username";
}
}
}
现在当 Invalid Username 来自 AJAX 作为响应时,我如何禁用表单?
虽然我应该使用return false..但不知道如何处理响应?
【问题讨论】:
-
您拥有
$inputs.prop("disabled", false);,它将在响应后始终启用您的字段。 -
检查“数据”,在 Ajax 响应中,
if (data == "Invalid Username"){event.preventDefault();} -
Pratik 它只是无效用户名的 php 示例,还有更多内容,例如无效电子邮件、无效密码、无效详细信息和 bla bla bla :( 事情变得更复杂了不是吗?
标签: javascript php jquery ajax