Javascript 如果条件未按预期工作,则AJAX调用会进一步阻止else条件
我是AJAX的初学者。我使用AJAX检查MVC框架中是否存在移动电话号码。我有一个对话框,其中有一个窗体和一个关闭按钮。单击关闭按钮,我需要执行验证 代码如下 查看Javascript 如果条件未按预期工作,则AJAX调用会进一步阻止else条件,javascript,jquery,ajax,if-statement,Javascript,Jquery,Ajax,If Statement,我是AJAX的初学者。我使用AJAX检查MVC框架中是否存在移动电话号码。我有一个对话框,其中有一个窗体和一个关闭按钮。单击关闭按钮,我需要执行验证 代码如下 查看 $( "#newCustAddClose" ).click(function() { //alert( "Handler for .click() called." ); var cname = $("#custname").val(); var mno = $("#custmobilenumber").va
$( "#newCustAddClose" ).click(function() {
//alert( "Handler for .click() called." );
var cname = $("#custname").val();
var mno = $("#custmobilenumber").val();
var phoneno = /^\d{10}$/;
var flag = 0;
// alert(mno);
if(cname == ""){
alert( "Customer name is required!" );
$( "#custname" ).focus();
}
else if(mno == ""){
alert( "Mobile number is required!" );
$( "#custmobilenumber" ).focus();
}
else if(!mno.match(phoneno)){
alert('Please enter 10 digit mobile number.');
$( "#custmobilenumber" ).focus();
}
else if(mno.match(phoneno)){
$.ajax({
url: "/api/sales/existmobile",
type:"POST",
data:{data: mno},
success:function(response) {
console.log('response',response);
successCallback(response);
},
error:function(response) {
console.log(response);
}
});
}
else{
$('#custdiv').dialog('close');
}
});
function successCallback(responseObj){
// Do something like read the response and show data
//alert(JSON.stringify(responseObj)); // Only applicable to JSON response
if (responseObj == 'false') {
alert('Mobile number already exists!');
$( "#custmobilenumber" ).focus();
}
}
当手机号码存在时,它会显示警报,但如果它不存在,我点击关闭按钮,它就会挂在那里。由于所有验证要求都已完全满足,因此应关闭对话框。但它不起作用
我尝试了returnsuccesscallback(response)
和返回$.ajax({…
),但这也不起作用
我不明白哪里出了问题。请帮助和指导。无法访问行$('#custdiv')。对话框('close')
这是因为从逻辑上讲,mno.match(phoneno)
和!mno.match(phoneno)
都不可能为false。一旦较早的else中的一个条件返回true,则后续的else
语句都不会被查看
如果希望在ajax调用响应时关闭对话框'true'
,我建议将$('custdiv').dialog('close')
调用移动到successCallback
函数中
例如:
function successCallback(responseObj){
if (responseObj == 'true') {
$("#custdiv").dialog('close');
} else {
alert("Mobile number already exists!");
$("#custmobilenumber").focus();
}
}
请改用event.target.getAttribute(),因为它们不是表单元素。您的浏览器开发工具会显示什么-控制台上有错误吗?POST是否正确发生?服务器会响应什么?响应的格式是什么,您是否需要将适当的数据类型
添加到AJAX中?另外请注意,上一个对话框()
呼叫永远不会发生-如果输入了正确格式的电话号码,您将始终处于AJAX块中。该代码可能会移动到您的successCallback()
。