调用ajax函数时,阻止在asp页面上刷新页面

时间:2018-03-04 12:41:35

标签: javascript asp.net ajax asynchronous cross-domain

您好我遇到了一个我自己无法解决的问题。 在单击按钮之后的asp页面中,该按钮调用调用Ajax函数的JS函数。它刷新了页面,我几乎尝试了所有东西,但我无法处理它。 这是代码:

ASP按钮:

<button id="btnNext" class="button" style="float: left;" onClick="return nextButton();">Next <span aria-hidden="true" class="glyphicon glyphicon-step-forward" style="text-align: right;"></span></button> 

JS函数:

       function apiCall() {
            if (!doNotDisplay) {
                url = getURL();
                setSetting();
                var execAjax = $.ajax(settings);
            }
        }

        function setSetting() {
            settings = {
                "async": true,
                "crossDomain": true,
                "url": url,
                "method": ajaxMethod,
                "dataType": "json",
                "complete": function (jqXHR, textStatus) {
                    console.log("Completed: " + textStatus);
                },
                "error": function (jqXHR, textStatus, errorThrown) {
                    console.log("Error: " + errorThrown);
                },
                "success": function (data, textStatus, jqXHR) {
                    listarConsulta(data);
                    if (!doNotDisplay) {
                        apiCall();
                    }
                }
            }
        }

        function nextButton() {
            //set MAX
            if (page_num <= 999) {
                index_id_ref = 0;
                buttonClicked = true;
                //async = false; crossDomain = false;
                buttonEventFinished = false;

                apiFunction();
                return false;
            }
        }

调试后我可以看到JS函数正在运行但是当它完成后再次执行asp页面时,我认为回发设置为false,并且API函数的设置很好,但也许我错了。

如果有人可以帮助我,我将不胜感激。 非常感谢提前。

3 个答案:

答案 0 :(得分:0)

OnClientClick而不是OnClick中调用JS函数:

OnClientClick="return nextButton();"

答案 1 :(得分:0)

我解决了!但我决定发布它,以便如果有人有相同的问题可以有解决方案。代码正在运行。写“return false”很重要如果要执行使用html元素(而不是asp)调用Ajax函数的事件,则要防止回发。这段代码对我有用。希望它有所帮助。

答案 2 :(得分:0)

问题是您的按钮是“提交”类型。因此,每次用户点击按钮时,它都会被提交,因此页面会在您的情况下刷新。尝试将按钮的类型更改为“按钮”。

<button type="button"></button>