2012-07-27 70 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); 
相關問題