你好,我遇到了一个我自己无法解决的问题。在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 函数的设置很好,但也许我错了。
如果有人能帮助我解决这个问题,我将不胜感激。提前非常感谢。
在 OnClientClick
中调用 JS 函数而不是OnClick
:
OnClientClick="return nextButton();"
问题是您的按钮类型为"提交"。因此,每次用户单击按钮时,它都会被提交,因此在您的情况下页面会刷新。尝试将按钮的类型更改为"按钮"。
<button type="button"></button>
我解决了!但我决定发布它,以便如果有人有同样的问题可以有解决方案。代码正在工作。如果要执行使用 html 元素(不是 asp(调用 Ajax 函数的事件,请务必编写"return false;"以防止回发。这段代码对我有用。希望对您有所帮助。