如果$ .get返回某个值,则显示.submit alert

时间:2012-01-16 13:21:14

标签: jquery

我的代码存在问题。我不能让它在提交时弹出警报。好吧,我让它工作的唯一方法是在$ .get之外插入另一个警报。 (你可以在下面看到)。我会非常感谢我可能获得的任何帮助和指导。

$('#addEvent').submit(function() {
    var date = $('#day').val();
    var startTime = $('#startTime').val();

    $.get("/cal/check-For-Existing-Events/time/"+date+"%20"+startTime+":00/room/1234", function(data) { 
        if(data == "Error: date") {
            alert('Error: This date has expired.');
            return false;
        }
        else if(data == "Error: existing") {
            alert('Error: You already have a reservation made on this day.')
            return false;
        }
        else {
            return true;
        }
    });
        alert('test');  //If I remove this part, above errors don't work. WTH!?
});

3 个答案:

答案 0 :(得分:1)

var ready = false;
$('#addEvent').submit(function() {
    if (!ready) {
        var date = $('#day').val();
        var startTime = $('#startTime').val();

        $.get("/cal/check-For-Existing-Events/time/" + date + "%20" + startTime + ":00/room/1234", function(data) { 
            if(data == "Error: date") {
                alert('Error: This date has expired.');
            } else if (data == "Error: existing") {
                alert('Error: You already have a reservation made on this day.');
            } else {
                ready = true;
                $('#addEvent').submit();
            }
        });
        return false;
    }
});

答案 1 :(得分:0)

只需添加一个参数“e”和e.preventDefault();

$('#addEvent')。submit(function(e){     e.preventDefault();         var date = $('#day')。val();         var startTime = $('#startTime')。val();

    $.get("/cal/check-For-Existing-Events/time/"+date+"%20"+startTime+":00/room/1234", function(data) { 
        if(data == "Error: date") {
            alert('Error: This date has expired.');
            return false;
        }
        else if(data == "Error: existing") {
            alert('Error: You already have a reservation made on this day.')
            return false;
        }
        else {
            return true;
        }
    });
        alert('test');  //If I remove this part, above errors don't work. WTH!?
});

答案 2 :(得分:0)

谢谢大家的建议。我尝试了所有这些,但似乎没有一个工作。这就是为什么我决定从头开始使用我从之前的答案中获得的一些信息。

以下是可行的代码。 +我还必须补充一点,我必须从表单中删除提交按钮并在其外部再创建一个以使代码生效。我真的不知道为什么,所以如果有人有这方面的任何信息......请告诉我。 :)

$("#submit").click(function() {
    var timeStamp = $("#day").val()+" "+$("#startTime").val();
    var room = $room ?>
    $.post("/cal/check-For-Existing-Events/time/"+timeStamp+"/room/"+room, function(data) {
        if(data == "Error: date") {
            $("#errorDisplay").html("Select future date.")
            $("#errorDisplay").show();
            return false;
        } 
        if(data == "Error: exists") {
            $("#errorDisplay").html("You already have a reservation.")
            $("#errorDisplay").show();
            return false;
        }else {
            $("#addEvent").submit();
        }
    });
    return false;
});

我希望这个答案对任何人都有帮助。干杯! :)