我的jquery如下:
function confirmRxAction(tNum) {
var aUrl = "";
alert(tNum);
if (confirm("Are you sure you want to close?")) {
aUrl = "${pageContext.request.contextPath}/tax/executeoneTimeEx.html?tNum=" + tNum;
$("#aRx").click();
}
$(document).ready(function() {
$("#aRx").click(function() {
xhr = $.ajax({
type: "POST",
url: aUrl,
dataType: "text",
error: function(XMLHttpRequest, errorThrown) {},
success: function(ajaxResult, testStatus) {
if (ajaxResult.length > 0)
alert(ajaxResult);
else
afterUpdate();
}
});
return false;
});
});
}
单击超链接时,将调用该函数并使用yes或no弹出此确认消息。 当我第一次选择是时,控件不会转到控制器。确认弹出窗口关闭,但不执行任何操作。 所以我第二次点击超链接,一切正常。 有什么错误阻止在第一次点击时调用操作?
答案 0 :(得分:2)
你的$(document).ready函数在你的确认函数中,所以在第一次运行确认函数之前,不会附加click事件。尝试在确认功能之外移动$(document).ready函数。
答案 1 :(得分:0)
不知道你为什么写这样的代码,但你应该像下面这样使用它:
function confirmRxAction(tNum){
var aUrl = "";
alert(tNum);
if(confirm("Are you sure you want to close?")) {
aUrl = "${pageContext.request.contextPath}/tax/executeoneTimeEx.html?tNum=" + tNum;
xhr = $.ajax({type: "POST",
url: aUrl,
dataType: "text",
error: function(XMLHttpRequest, errorThrown){
},
success: function(ajaxResult, testStatus){
if(ajaxResult.length>0)
alert(ajaxResult);
else
afterUpdate();
}
});
}
}
只需用我的功能替换你的功能。
答案 2 :(得分:0)
我建议设置点击文档就绪。并在click()中添加确认,就像在代码段示例中一样。
function afterUpdate() {
alert("after update");
}
$(document).ready(function() {
$("#aRx").click(function(event) {
event.preventDefault();
if (confirm("Are you sure you want to close?")) {
xhr = $.ajax({
type: "GET",
url: "http://services.groupkt.com/country/get/all",
dataType: "json",
error: function(XMLHttpRequest, errorThrown) {
alert("error" + errorThrown);
},
success: function(data) {
if (data != null)
alert(data);
else
afterUpdate();
}
});
}
return false;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="aRx" href="#">Click Here</a>