在ajax调用期间禁用输入而不淡入淡出

时间:2012-07-27 21:02:59

标签: javascript jquery ajax

我有很多输入在点击时调用Ajax。每个作为JavaScript函数分配。执行Ajax时需要禁用这些输入。这就是我到目前为止所做的:

  $("html").bind("ajaxStart", function(){
    $("input").attr("disabled", "disabled");
     $(this).addClass('busy');
  }).bind("ajaxStop", function(){
     $(this).removeClass('busy');
     $("input").removeAttr("disabled");
  });

唯一的问题是输入变为灰色。如果没有太多麻烦,我怎么能避免这种情况呢?

我也尝试了readonly属性,但由于某种原因它不起作用。这仍然会在Chrome中至少灰显按钮,并且仍然允许您点击无线电和复选框。

  $("html").bind("ajaxStart", function(){
    $("input").attr("readonly", true);
     $(this).addClass('busy');
  }).bind("ajaxStop", function(){
     $(this).removeClass('busy');
     $("input").removeAttr("readonly");
  });  

编辑:单独使用CSS看起来这可能是不可能的,所以我可能需要使用JavaScript。此技术适用于复选框。单选按钮可能需要更多工作:

http://jsfiddle.net/q3c2Y/1/

3 个答案:

答案 0 :(得分:0)

而不是disabled您可以使用readonly属性。

答案 1 :(得分:0)

您可以尝试“readonly”属性。

答案 2 :(得分:0)

disabled属性值设置为true

$("input").attr("disabled", true);