0

我正在显示一个向导表单,并且在某个阶段必须检查输入的property_code输入值是否与数据库中的任何记录匹配。这是通过 jQuery 和 AJAX 调用完成的,它以Valid或响应Invalid,基于此我可能希望阻止用户移动到向导的下一页。

现在,此功能受smartwizard()插件支持并且应该可以工作,但是在验证 AJAX 响应时似乎存在 jQuery 问题。我看到响应是Invalid,但用户仍然可以转到下一张幻灯片,这表明返回时存在问题truefalse

// 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起返回应该停止脚本的其余部分,所以不确定我在这里做错了什么。

谢谢

4

0 回答 0