Javascript方法无法完成

时间:2014-02-06 10:26:30

标签: javascript

我有以下javascript方法适用于除谷歌浏览器之外的所有浏览器,为了让我在谷歌浏览器中工作,我必须添加未注释的提醒。任何想法如何确保完成而不使用警报消息:

$(document).ready(function () {
    $("#EnrolAndEnter").click(function (event) {

        var postData = {
            'courseID': '@Model.Course.CourseID'
        };

        $.post('/Course/EnrolUser/', postData, function (data) {
            document.getElementById("EnrolAndEnter").innerHTML = "<i class=\"icon-external-link\"></i>Enter";
        });

        //alert("SUCCESS");

    });
});

然后我将我的方法更新为:

$(document).ready(function () {
    $("#EnrolAndEnter").click(function (event) {

        var postData = {
            'courseID': '@Model.Course.CourseID'
        };

        alert("MSG1");
        $.when($.ajax(
        {
            type: "POST",
            url: '/Course/EnrolUser/',                 
            data: postData
        }))
        .done(function () {
            document.getElementById("EnrolAndEnter").innerHTML = "<i class=\"icon-external-link\"></i>Enter";

        });
        alert("MSG2");
    });
});

同样,只有在包含警报时才会在控制器上调用EnrolUser方法。如果没有包含警报,它什么都不做,只是重定向到HREF指定的路由,该路由应该被注册抢占

2 个答案:

答案 0 :(得分:0)

尝试console.log('Success');

这将写入JavaScript控制台(按F12并转到“控制台”)。

JavaScript执行暂停,直到警报返回一个值,因此它可能失败,因为警报在POST执行完成之前被触发。

答案 1 :(得分:0)

链接上的HREF在Javascript onclick事件有时间完成之前被解雇并完成是一个时间问题