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