2013-01-04 39 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%>”)' –