Javascript Can';t执行事件ajaxStart()
当我使用ajax(使用jquery)调用php脚本时,我试图将按钮的状态更改为disabled。我发送数据库中的所有信息并获得返回,但无法执行ajaxStart。如何解决更改按钮状态的问题?Javascript Can';t执行事件ajaxStart(),javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,当我使用ajax(使用jquery)调用php脚本时,我试图将按钮的状态更改为disabled。我发送数据库中的所有信息并获得返回,但无法执行ajaxStart。如何解决更改按钮状态的问题? 代码如下: HTML和JAVASCRIPT $(文档).ready(函数(){ //$(“#加载”).hide(); 变量名; 变量年龄; var post $(“.formulaire”).submit(函数(){ name=$(“#name”).val(); 年龄=$(“#年龄”).val(); po
代码如下: HTML和JAVASCRIPT
$(文档).ready(函数(){
//$(“#加载”).hide();
变量名;
变量年龄;
var post
$(“.formulaire”).submit(函数(){
name=$(“#name”).val();
年龄=$(“#年龄”).val();
post=$(“#post”).val();
$.post('sequence.php'{
你的名字:名字,
年龄:年龄,,
职位:职位
},dats);
$(“#bouton”).ajaxStart(function(){//Nous ciblons l'lélément#加载qui est caché
$(“#bouton”).attr('disabled'、'disabled');
console.log(“**********”);
});
返回false;
功能dats(数据){
$(“#div1”).html(数据);
$(“#名称”).val(“”);
$(“#年龄”).val(“”);
$(“#post”).val(“”);
}
});
});代码>
提交
以下是示例代码:
$(document).ready(function () {
var name, age, post;
$(".formulaire").submit(function (event) {
event.preventDefault();
name = $("#name").val();
age = $("#age").val();
post = $("#post").val();
$("#bouton").attr('disabled','disabled');
$.post('sequence.php',
{
u_name: name,
age: age,
post: post
}, function (data) {
$("#div1").html(data);
$("#name").val("");
$("#age").val("");
$("#post").val("");
$("#bouton").removeAttr('disabled');
}
);
});
});
以下是示例代码:
$(document).ready(function () {
var name, age, post;
$(".formulaire").submit(function (event) {
event.preventDefault();
name = $("#name").val();
age = $("#age").val();
post = $("#post").val();
$("#bouton").attr('disabled','disabled');
$.post('sequence.php',
{
u_name: name,
age: age,
post: post
}, function (data) {
$("#div1").html(data);
$("#name").val("");
$("#age").val("");
$("#post").val("");
$("#bouton").removeAttr('disabled');
}
);
});
});
的所有处理程序,包括使用.ajaxStart()
方法添加的处理程序,都必须附加到文档
所以你应该这样做:
$(document).ajaxStart(function () {
$("#bouton").attr('disabled','disabled');
});
如果您在代码的任何地方都执行$.ajax
,那么ajaxStart
将始终为所有ajax
触发,这不是一个好主意
正如JQuery文档所说,$.Post
是一个速记Ajax函数,相当于:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
最好使用$.ajax
而不是$
$.ajax({
beforeSend: function(){
$("#bouton").attr('disabled','disabled');
},
complete: function(){
//Completed
}
// ......
}).done(function() {
$("#bouton").removeAttr('disabled');
});
提供的测试代码:
$(文档).ready(函数(){
变量名称、年龄、职务;
$(“.formulaire”).submit(函数(){
console.clear();
name=$(“#name”).val();
年龄=$(“#年龄”).val();
post=$(“#post”).val();
$.post('sequence.php',
{
你的名字:名字,
年龄:年龄,,
职位:职位
},dats
);
返回false;
功能dats(数据){
$(“#div1”).html(数据);
$(“#名称”).val(“”);
$(“#年龄”).val(“”);
$(“#post”).val(“”);
}
});
$(文档).ajaxStart(函数(){
$(“#bouton”).attr('disabled','disabled');
log('started…');
}).ajaxStop(函数(){
$(“#bouton”).removeAttr('disabled');
console.log('stoped…');
});
});代码>
提交
的所有处理程序,包括使用.ajaxStart()
方法添加的处理程序,都必须附加到文档中
所以你应该这样做:
$(document).ajaxStart(function () {
$("#bouton").attr('disabled','disabled');
});
如果您在代码的任何地方都执行$.ajax
,那么ajaxStart
将始终为所有ajax
触发,这不是一个好主意
正如JQuery文档所说,$.Post
是一个速记Ajax函数,相当于:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
最好使用$.ajax
而不是$
$.ajax({
beforeSend: function(){
$("#bouton").attr('disabled','disabled');
},
complete: function(){
//Completed
}
// ......
}).done(function() {
$("#bouton").removeAttr('disabled');
});
提供的测试代码:
$(文档).ready(函数(){
变量名称、年龄、职务;
$(“.formulaire”).submit(函数(){
console.clear();
name=$(“#name”).val();
年龄=$(“#年龄”).val();
post=$(“#post”).val();
$.post('sequence.php',
{
你的名字:名字,
年龄:年龄,,
职位:职位
},dats
);
返回false;
功能dats(数据){
$(“#div1”).html(数据);
$(“#名称”).val(“”);
$(“#年龄”).val(“”);
$(“#post”).val(“”);
}
});
$(文档).ajaxStart(函数(){
$(“#bouton”).attr('disabled','disabled');
log('started…');
}).ajaxStop(函数(){
$(“#bouton”).removeAttr('disabled');
console.log('stoped…');
});
});代码>
提交
因此您正在收听ajaxStart事件的#bouton
元素--尝试$(document).ajaxStart($(“#bouton”).attr(disabled,“disabled”)代码>处理程序是否未运行或未工作<代码>禁用
是一个属性,需要设置为true
。另请参见@Snowmonkey,如果正确,ajaxStart
必须附加到文档(参考:)disabled
仍然是一个属性:)奇怪的是,就javascript而言,“disabled”是一个真正的值。任何不隐式为false的值都是真实的。但你绝对正确。我总是忘了哪一个正在被淘汰,attr还是prop。叹息…感谢@SnowmonkeySo您正在收听ajaxStart事件的#bouton
元素--请尝试$(文档).ajaxStart($(“#bouton”).attr(disabled,“disabled”)代码>处理程序是否未运行或未工作<代码>禁用
是一个属性,需要设置为true
。另请参见@Snowmonkey,如果正确,ajaxStart
必须附加到文档(参考:)disabled
仍然是一个属性:)奇怪的是,就javascript而言,“disabled”是一个真正的值。任何不隐式为false的值都是真实的。但你绝对正确。我总是忘了哪一个正在被淘汰,attr还是prop。叹气……谢谢@snowmonkey这种方法的问题是,成功回调发生在帖子返回之后——而ajaxStart()立即发生。例如,如果您想确保用户在ajax处理发生时不能单击按钮,那么监听ajaxStart()将是一个不错的选择。不过,这种方法的问题是,成功回调发生在post返回之后,而ajaxStart()会立即发生。如果您想确保用户在ajax进程运行时不能单击按钮