document.ready被解雇了两次

时间:2013-09-10 19:22:31

标签: javascript jquery asp.net-mvc-4 post

我在局部视图的顶部有以下Javscript:

<script>
$(document).ready(function () {
    alert('@Model.Course.CompletionTypeID');
    $('#Submit').live('click', function () {
        if ('@Model.Course.CompletionTypeID' == 2 || '@Model.Course.CompletionTypeID' == 3) {
            alert("IN THE LOOP");
            var fullURL = document.URL;
            fullURL = fullURL.replace("#", "");
            var courseID = fullURL.split('courseID=');
            var courseID = courseID[1];

            var postData = { 'courseID': courseID };
            $.post('/Course/FinishSurvey/', postData, function (data) {
                alert("COOL");
                $('#finishDiv').hide();
                $('#finishCompleteDiv').show();
                alert("COOL COOL");
                document.getElementById("FinishButton").style.visibility = "hidden";
                document.getElementById("LaunchButton").style.visibility = "visible";
            });
        }
        event.cancelBubble = true;
        event.returnValue = false;
        event.preventDefault();
        event.stopPropagation();

    });
});
</script>

单击“提交”按钮后,我收到提示“在循环中”,因此我已成功进入循环,但然后在顶部if语句出错,因为由于某种原因我无法解决post方法没有尽管代码是从工作页面复制的,但似乎还是受到了打击。它在以下行中出错:

 if ('@Model.Course.CompletionTypeID' == 2 || '@Model.Course.CompletionTypeID' == 3) {

即使它已经进入此循环,但已找到此模型变量的值。如果我然后在调试时按F5,它将转移到Course / FinishSurvey控制器方法但是如果不按F5我就无法达到这一点。任何人都可以告诉我,如果有什么我做错了你会看到什么,任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我看不到你宣布你的活动的地方。

$('#Submit').live('click', function () {

应该是:

$('#Submit').live('click', function (event) {

但是,我会这样做:

$('form').submit(function(e) {
  e.preventDefault();
  // your ajax code
});