伙计我已经在Chrome,Firefox,IE 7 8和9中测试了这段代码。只有在IE10中才能使用。
$("#upload_file").live('click', function() {
$('#upload_file').prop('disabled', 'disabled');
//then do some more codes like ajax
}
单击上传按钮时,应禁用该按钮以避免双击。除了在IE10中,这适用于其他浏览器。在IE10中它看起来没有禁用,但它不会执行它下面的其他代码。所以我假设它确实禁用了功能,而不是按钮
答案 0 :(得分:1)
禁用应设置为布尔值:
$('#upload_file').prop('disabled', true);
根据jQuery docs:
应该使用.prop()方法来设置disabled和checked .attr()方法。
$( "input" ).prop( "disabled", false );
答案 1 :(得分:0)
它告诉我你的问题来自使用旧版本的jQuery。因为IE 10最近创建了你的jQuery,我猜是1.6,它没有针对新版本的浏览器进行优化。我强烈建议您更新到新版本,除非您重新分解现有代码。
答案 2 :(得分:0)
尝试使用.on()
进行事件委派:
$(document).on('click', '#upload_file', function() {
$(this).prop('disabled', true);
//then do some more codes like ajax
});
您可以使用最接近的静态父级到目标元素(“_#upload_file_”),该元素可能是保存按钮的<div>, <table>
。
重新启用按钮:
$(document).on('click', '#upload_file', function() {
$(this).prop('disabled', true);
$.ajax({
url: your url,
type: your type,
.......
success:function(){
},
complete:function(){
$('#upload_file:disabled').prop('disabled', false); //<----here
},
error: function(){}
});
});