对象不支持属性或方法'停止' IE

时间:2017-02-08 07:30:28

标签: javascript jquery asp.net

当我点击提交按钮时。我得到了一个错误,例如"对象不支持属性或方法停止"在Internet Explorer中,但数据已成功添加到数据库中。

这是我的代码。

function SaveComment(subCommentId, trShowresponseId, tdShowresponseId, startDate, endDate) {
//    alert("");
  debugger;
try {
    var response = document.getElementById("TextBoxResponse~" + subCommentId).value;

    if (response === "") {
        alert("Please Enter Response.");
        return false;
    }
    else {
        //  var isAdvanceComment = 1;
        $("#showloading").show();
        var commentType = 'A';
        var returnReult = dashboards_DiscreteRating.SaveComment(response, subCommentId, commentType, startDate, endDate, 0).value;

        if (returnReult.match("Error")) {
            document.getElementById("spanErrorMessage").innerHTML = returnResponse;

        }
        else {
            document.getElementById(tdShowresponseId).innerHTML = returnReult;

        }
        // document.getElementById(tdShowresponseId).innerHTML = dashboards_DiscreteRating.SaveComment(response, subCommentId, commentType, 0).value;
        document.getElementById("trHiddenTextBox~" + subCommentId).className = "hide";
        document.getElementById("trAddSpan~" + subCommentId).className = "show";
        document.getElementById("TextBoxResponse~" + subCommentId).value = "";
        document.getElementById(trShowresponseId).className = "show";
        $("#showloading").hide();
        window.stop();

    }


}
catch (ex) {
    alert(ex.description);
}}

enter image description here

3 个答案:

答案 0 :(得分:2)

请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window/stop

  

Internet Explorer不支持stop()方法。

另外:我不知道你打算通过拨打stop()来实现目标。

但是:您将window.stop();作为文件的最后一行。由于您不在catch - 块或其他任何内容中回滚,因此在该调用之前的所有内容(例如,写入数据库)都会被执行而不会回滚

答案 1 :(得分:2)

而不是使用window.stop(),可以在表单false侦听器中的事件对象上返回preventDefault或调用submit - 可能在您调用SaveComment的任何位置。有点像:

commentForm.addEventListener('submit', function (e) {
    // …
    SaveComment(…);
    e.preventDefault();
});

此处的警告表示您可能已经直接传递了返回值:

alert("Please Enter Response.");
return false;

在这种情况下你也应该能够在这里做到:

$("#showloading").hide();
return false;

答案 2 :(得分:1)

最后我用这个解决了这个错误。

function SaveComment(subCommentId, trShowresponseId, tdShowresponseId, startDate, endDate) {
//    alert("");
  debugger;
try {
    var response = document.getElementById("TextBoxResponse~" + subCommentId).value;

    if (response === "") {
        alert("Please Enter Response.");
        return false;
    }
    else {
        //  var isAdvanceComment = 1;
        $("#showloading").show();
        var commentType = 'A';
        var returnReult = dashboards_DiscreteRating.SaveComment(response, subCommentId, commentType, startDate, endDate, 0).value;

        if (returnReult.match("Error")) {
            document.getElementById("spanErrorMessage").innerHTML = returnResponse;

        }
        else {
            document.getElementById(tdShowresponseId).innerHTML = returnReult;

        }
        // document.getElementById(tdShowresponseId).innerHTML = dashboards_DiscreteRating.SaveComment(response, subCommentId, commentType, 0).value;
        document.getElementById("trHiddenTextBox~" + subCommentId).className = "hide";
        document.getElementById("trAddSpan~" + subCommentId).className = "show";
        document.getElementById("TextBoxResponse~" + subCommentId).value = "";
        document.getElementById(trShowresponseId).className = "show";
        $("#showloading").hide();
        if ($.browser.msie) { //************** Here is the answer ************
            document.execCommand('Stop'); //************** Here is the answer ***********
        }
        else {
            window.stop();
        }


    }


}
catch (ex) {

    alert(ex.description);
}}

Internet Explorer不支持 window.stop(),因此我们可以使用 document.execCommand(" Stop")进行IE浏览。