Jquery 如果在$.ajaxURL中调用的方法返回false,则要使web表单无效吗
简单的注册表单有一个字段“首选登录id(用户名)”。一旦用户输入电子邮件,我将通过将输入的用户名与数据库值进行比较来验证输入的用户名(如果它已经存在或不存在)。为此,我使用jquery的$.ajax方法进行服务器调用Jquery 如果在$.ajaxURL中调用的方法返回false,则要使web表单无效吗,jquery,ajax,validation,server-side-validation,Jquery,Ajax,Validation,Server Side Validation,简单的注册表单有一个字段“首选登录id(用户名)”。一旦用户输入电子邮件,我将通过将输入的用户名与数据库值进行比较来验证输入的用户名(如果它已经存在或不存在)。为此,我使用jquery的$.ajax方法进行服务器调用 <script> $('#txtPreferredLogin').focusout(function () { $.ajax({ type: "POST", url: "../Log
<script>
$('#txtPreferredLogin').focusout(function () {
$.ajax({
type: "POST",
url: "../Login.aspx/CheckUserName",
async: false,`enter code here`
data: "{userName: '" + $('#txtPreferredLogin').val() + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$('#valid').html("<img src='Images/waiting.gif' alt='Checking username!'>");
var delay = function () {
AjaxSucceeded(response);
};
setTimeout(delay, 500);
},
failure: function (response) {
alert(response.d);
}
});
});
function AjaxSucceeded(result) {
if (result.d == true) {
$('#valid').html("<img src='Images/2_Not.png' alt='Username taken!'>");
}
else {
$('#valid').html("<img src='Images/1_available.png' alt='Username available!'>");
}
}
$.validator.addMethod('notNone', function (value, element) {
return (value != '0');
});
$(function () {
$("#regi1").validate(
{
rules:
{
ddlCity:
{
required: true,
notNone: true
},
txtDOB:
{
required: true,
dpDate: true
}
},
messages: {
ddlCity: "Please select city",
txtDOB: "Please enter a valid date (dd-mm-yyyy)"
}
});
});
</script>
现在,当用户名不可用时,它会显示一条消息(图像),表明它不可用。但我在这些字段下面有一个保存按钮,点击该按钮,整个表单就会得到验证,也就是说,除非用户名不可用,否则在所有字段都有效之前,它不会回发页面。现在,如果用户名不可用,我不想回发。我需要在代码中做哪些更改?如果使用jQuery表单验证,那么必须使用远程验证。由验证框架提供
希望这将有所帮助,因为Riaz说远程验证非常有用,但在您的情况下,您已经在检查用户名,所以您不想再次访问服务器 jquery具有.data函数,您可以使用它
function AjaxSucceeded(result) {
if (result.d == true) {
$('#valid').html("<img src='Images/2_Not.png' alt='Username taken!'>");
$("#txtPreferredLogin").data("available", false); //add data
} else {
$('#valid').html("<img src='Images/1_available.png ' alt=' Username available!'>");
$("#txtPreferredLogin").data("available", true); //add data
}
}
//add validator
$.validator.addMethod('
available ', function(value, element) {
return $(element).data("available");
});
$(function() {
$("#regi1").validate({
rules: {
txtPreferredLogin: {
required: true,
available: true
},
ddlCity: {
required: true,
notNone: true
},
txtDOB: {
required: true,
dpDate: true
}
},
messages: {
ddlCity: "Please select city",
txtDOB: "Please enter a valid date (dd-mm-yyyy)"
}
});
});
谢谢Zahid和codebins.com。这两种解决方案(远程验证和.data函数)都适合我。我使用了.数据来快速实现。
function AjaxSucceeded(result) {
if (result.d == true) {
$('#valid').html("<img src='Images/2_Not.png' alt='Username taken!'>");
$("#txtPreferredLogin").data("available", false); //add data
} else {
$('#valid').html("<img src='Images/1_available.png ' alt=' Username available!'>");
$("#txtPreferredLogin").data("available", true); //add data
}
}
//add validator
$.validator.addMethod('
available ', function(value, element) {
return $(element).data("available");
});
$(function() {
$("#regi1").validate({
rules: {
txtPreferredLogin: {
required: true,
available: true
},
ddlCity: {
required: true,
notNone: true
},
txtDOB: {
required: true,
dpDate: true
}
},
messages: {
ddlCity: "Please select city",
txtDOB: "Please enter a valid date (dd-mm-yyyy)"
}
});
});