2012-07-27 60 views
0

我有大量的输入,点击时会调用Ajax。每个作为一个JavaScript函数分配。这些输入需要在Ajax执行时被禁用。这是我到目前为止:在没有淡入淡出的情况下禁用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/

回答

0

而不是disabled你也许可以使用readonly属性。

+0

只读也变灰的复选框,也让互动。根据这个信息:“READONLY只是防止用户改变字段的值,而不是与字段交互。” http://www.htmlcodetutorial.com/forms/_INPUT_DISABLED.html – Dave 2012-07-30 15:26:20

0

您可以尝试“只读”属性。

+0

我试过只读,并且因为某些原因没有工作。我将代码添加到帖子中。 – Dave 2012-07-27 21:19:28

0

设置disabled属性值true

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