我有这个ajax请求脚本:
function SendData(){
$( "#Submit" ).click(function() {
$('#Submit').attr("disabled", true);
$.ajax({
type:"POST",
url:"assets/process.php",
data: {
Years : $('#Years').val()
},
success: function(Response){
if (Response.Status == 'Error') {
swal("Ups!", "Nemo' zebavaš", "error");
} else if (Response.Status == 'Error0') {
swal("Ups!", "Servis 'Misterije' mogu koristiti samo rođene osobe!", "error");
}
else if (Response.Status == 'Error120') {
swal("Ups!", "Žao nam je! Niste podobni za korišćenje WEB Servisa 'Misterije'!", "error");
}
else if (Response.Status == 'Success') {
swal("USPEŠNO!", 'Rođeni ste: '+Response.Calculated+' godine!', "success");
}
$('#Submit').attr("disabled", false);
}
});
});
}
当我在浏览器中加载页面时,添加数据到输入并单击按钮没有任何反应,但是在第二次和所有点击之后直到我刷新页面都正常工作。 我该如何解决这个问题?
答案 0 :(得分:0)
当您点击按钮时,大概是调用此SendData()
功能?
此功能不能按照您的想法行事。它没有调用AJAX请求。 所有此功能的作用是将点击处理程序附加到按钮。而已。然后 next 时单击按钮,该处理程序将执行。
(更不用说它还会附加另一个点击处理程序。所以第三次点击会调用处理程序两次。依此类推......)
没有必要在函数中包含所有这些内容。而不是:
function SendData(){
$( "#Submit" ).click(function() {
// your code
});
}
这样做:
$( "#Submit" ).click(function() {
// your code
});
这将附加点击处理程序,而不是调用它。之后,当您单击按钮时,将调用处理程序。
最糟糕的是,如果按钮在此代码执行时尚不存在,则必须执行此操作:
$(function () {
$( "#Submit" ).click(function() {
// your code
});
});
这将等到document.ready
事件和然后附加处理程序。
(注意:在您删除该功能后,您还希望删除对SendData()
的任何引用。我假设您是在线调用它按钮。但是当你用jQuery附加点击处理程序时,你不需要这样做。)
答案 1 :(得分:0)
不要调用函数
将您的代码放入$(document).ready function