如何正确禁用IE10中的按钮?

时间:2014-01-07 09:03:53

标签: javascript jquery html internet-explorer-10

伙计我已经在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中它看起来没有禁用,但它不会执行它下面的其他代码。所以我假设它确实禁用了功能,而不是按钮

3 个答案:

答案 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(){}
     });
 });