2013-01-04 38 views
1

我正在使用AST.Net和jQuery 1.8.3。jquery attr(只讀)函數不起作用

我想使文本框的readonly屬性在頁面加載時爲true,而在腳本運行時爲false。我的代碼是這樣的:

function showdiv() { 

    $("#diviv").fadeIn("slow"); 
    $("#txtname").attr('readonly', false); 
    $("#txtmobile").attr('readonly', false); 
    $("#txtemail").attr('readonly', false); 
} 

我要讓這三個文本框的只讀屬性爲功能showdiv運行時錯誤。另外,我在腳本運行時使div可見。但這並不是假的。請給我一些建議如何讓它運行並告訴我問題在哪裏。

+1

Try for $(「#txtname」)。removeAttr('readonly'); –

+0

謝謝我試過它不在我的應用程序中工作,但是當我嘗試在另一個應用程序中工作。 – coder

回答

1

Readonly是一個布爾屬性,這意味着如果它存在,不管它具有什麼值,它將被設置。由於屬性總是字符串,因此您將其設置爲「false」。改用prop。

$("#txtname").prop('readonly', false); 
2

試試這個

$("#txtmobile").prop('readonly', false); 

OR

$("#<%= txtname.ClientID %>").prop('readonly', false); 
2

readonly是一個布爾值屬性,這意味着如果它存在,不管有什麼樣的價值,它將被設置。由於屬性始終是字符串,因此您將其設置爲"false"。改爲使用prop

$("#txtname").prop('readonly', false); 
+0

謝謝@dennis我試過,但它不工作.... – coder

0

你可以在jquery中使用removeAttr。

$("#txtmobile").removeAttr('readonly'); 
+0

感謝您的所有建議傢伙... – coder

0

一個文本框的readonly屬性不採取true/false作爲值,你必須指定是像這樣的關鍵字readonly

<input type="text" id="txtName" readonly /> 

現在,爲「禁用」這個屬性,你將使用jQuery的.removeAttr()方法來刪除此,

$("#txtName").removeAttr("readonly"); 

test link

+0

謝謝我試過它不是在我的應用程序工作,但是當我嘗試在另一個應用程序它工作。是問題所在。 – coder

+0

如果你使用'asp.net',那麼你必須像這樣綁定你的控件,'$(「#<%= txtname.ClientID%>」)' –