我正在显示一个向导表单,并且在某个阶段必须检查输入的property_code
输入值是否与数据库中的任何记录匹配。这是通过 jQuery 和 AJAX 调用完成的,它以Valid
或响应Invalid
,基于此我可能希望阻止用户移动到向导的下一页。
现在,此功能受smartwizard()
插件支持并且应该可以工作,但是在验证 AJAX 响应时似乎存在 jQuery 问题。我看到响应是Invalid
,但用户仍然可以转到下一张幻灯片,这表明返回时存在问题true
或false
。
// Initialize the leaveStep event
$("#smartwizard").on("leaveStep", function(e, anchorObject, stepIndex, nextStepIndex, stepDirection) {
// console
console.log('LeaveStep - CurrentStepIndex: ' + stepIndex);
// Property Info - checks if property exists before leaving step 1
if (stepIndex == 1) {
//check if property code already exists in system
var property_code = $("#property_code").val();
console.log('Checking if property code "' + property_code + '" already exists in DB');
$.ajax({
type: 'POST',
url: '../../controllers/hom_check_property_code.php',
data: 'action=check_property_code&property_code=' + property_code,
success: function(response) {
console.log('Property check response: ' + response);
if (response == 'Invalid') {
console.log('Property code check failed');
return false;
} else {
console.log('Property code check passed');
return true;
}
},
error: function(xhr, status, error) {
console.log('Ajax POST request failed.');
console.error(xhr);
}
});
}
// navigate to next step
console.log('Navigating from stepIndex ' + stepIndex + ' to ' + nextStepIndex + ', moving in stepDirection ' + stepDirection);
return true;
});
我不擅长 jquery / JS,因此如果有人能解释我问题出在哪里,我将不胜感激?我知道从那时false
起返回应该停止脚本的其余部分,所以不确定我在这里做错了什么。
谢谢