我几乎不知道jquery ajax。我试图通过一次单击同时触发 2 个事件。但不知何故它不起作用。我不明白我的不足在哪里。
$(document).ready(function() {
$("#trigger").click(function(e) {
e.preventDefault();
var text = $(this).data('text');
var formname = $(this).data('formname');
var agree = confirm(text);
if (agree)
var getcururl = window.location.href;
var testid = $('#testid').val();
$.ajax({
method: 'POST',
url: 'test.php',
data: {
getcururl: getcururl,
testid: testid
},
success: function(data) {
if (data != '') {
alert(data)
}
},
error: function(data) {
alert('Something went wrong, Please contact admin');
}
});
});
else
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="trigger" href="#" data-text="Are you sure?" data-formname="testform">Click</a>
<input type="hidden" id="testid" value="myname" />
寻求有关我面临的问题的建议。如果我只运行 ajax 发布而没有确认警报,那么它可以工作,我想在用户单击该按钮之前显示警报,然后在同意后处理 ajax 发布。
我做得对吗?
最佳答案
如果您将“else”语句移动到它所属的位置,它可能会起作用。但更好的方法是将其分解为多个函数。这使得它更容易理解和维护。
$(document).ready(function() {
$("#trigger").click(function(e) {
var text = $(this).data('text');
var agree = confirm(text);
if (!agree){
return false;
}
runAjax();
});
});
function runAjax(){
var getcururl = window.location.href;
var testid = $('#testid').val();
$.ajax({
method: 'POST',
url: 'test.php',
data: {
getcururl: getcururl,
testid: testid
},
success: function(data) {
if (data != '') {
alert(data)
}
},
error: function(data) {
alert('Something went wrong, Please contact admin');
}
});
}
关于jQuery Ajax 通过单击同时触发 2 个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33877175/