Jquery 如果条件为false/null,如何中止所有剩余函数
我的文件中运行了两个ajax脚本来检查用户是否存在,然后创建一个用户。目标只是在第一个ajax调用中检查用户是否存在,然后在第二个调用中创建用户(如果用户不存在) userCheck\u settings条件的这个ajax.done函数正确返回,并检查响应是否有null值,如果有,则返回false。但是,以下createUser函数仍在运行。是否可以中止所有剩余功能Jquery 如果条件为false/null,如何中止所有剩余函数,jquery,ajax,Jquery,Ajax,我的文件中运行了两个ajax脚本来检查用户是否存在,然后创建一个用户。目标只是在第一个ajax调用中检查用户是否存在,然后在第二个调用中创建用户(如果用户不存在) userCheck\u settings条件的这个ajax.done函数正确返回,并检查响应是否有null值,如果有,则返回false。但是,以下createUser函数仍在运行。是否可以中止所有剩余功能 function checkUser(responseToken) { $('.btn').click(func
function checkUser(responseToken) {
$('.btn').click(function () {
const Url = 'https://cors-anywhere.herokuapp.com/https://staging.micromerchantsystems.com/mmsgatewayapistaging/api/patient/search';
var user_firstName = $("#first_name").val();
var user_lastName = $("#last_name").val();
var user_dob = $('#date_of_birth').val();
const userCheck = {
"RequestingClient": {
"ClientId": "***********",
"MemberId": "***********"
},
"Pharmacy": {
"IdentifierType": 2,
"Identifier": "5164086800"
},
"LastName": user_lastName,
"FirstName": user_firstName,
"DOB": "04/27/1901",
"MobileNumber": "123456789",
};
var userCheck_string = JSON.stringify(userCheck);
var userCheck_settings = {
"async": true,
"crossDomain": true,
"url": Url,
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer " + responseToken,
"Accept": "*/*",
},
"data": userCheck_string
}
$.ajax(userCheck_settings).done(function (response) {
if (response.Patients == null) {
console.log('Reponse is null! ' + response.Patients);
return false;
console.log('This does not show');
} else {
console.log('Response is NOT null! Last Name is: ' + response.Patients[0].LastName);
}
});
});
}
function createUser(responseToken) {
$('.btn').click(function () {
console.log('I dont want this to run');
});
}
调用这两个函数(checkUser和createUser)时,将在具有.btn css类的元素上添加相同的单击事件侦听器:
$('.btn').click(function () {
//...
}
我假设按钮上有css类,但不管怎样,当您单击该类时,每个单击事件处理程序中的两个代码块实际上同时执行。换句话说,不会直接调用checkUser和createUser函数本身,而是调用事件处理程序中的代码。如果您只想在不存在用户时创建用户,我建议从逻辑内部调用createUser函数,该逻辑告诉您用户不存在,如下所示:
// truncated for brevity .......
$.ajax(userCheck_settings).done(function (response) {
if (response.Patients == null) {
//create user function call from here
//I'm not sure what the responseToken parameter should be but this is just an example
createUser(responseToken);
return false;
console.log('This does not show');
} else {
console.log('Response is NOT null! Last Name is: ' + response.Patients[0].LastName);
}
});
//truncated for brevity .......
//then the createUser function
function createUser(responseToken) {
//removed click event listener
//write your code to create user here
}
请注意,应该从createUser函数中删除click事件处理程序 你在哪里调用这些函数?