在客户端脚本上删除readonly属性时,TextBox没有返回任何值

时间:2013-03-14 03:45:23

标签: c# asp.net

最初我有一个文本框,其属性为readonly = true。当我使用asyncFileUpload OnClientUploadCompleted时,我成功删除了我的asp文本框(客户端)上的readonly属性。但是当我尝试从服务器端的文本框中检索值时,它返回一个空字符串或null,即使它有一个值。 这是客户端脚本

<script type="text/javascript" language="javascript">

    function OnClientUploadCompleteFn(){document.getElementById('ctl00_ContentPlaceHolder1_txtSponsorFileDesc').removeAttribute('ReadOnly');
    }
</script>

<asp:TextBox ID="txtSponsorFileDesc" runat="server" MaxLength="100" TextMode="MultiLine" Height="70px"  style="resize:none;"></asp:TextBox>

这是一个错误还是我做错了?

1 个答案:

答案 0 :(得分:2)

我的猜测是ASP.NET期望没有价值,因为就它而言(在服务器端)它仍然是只读的。我建议不要在ASP.NET中使用ReadOnly属性做任何事情,并将其完全保留在客户端上。当页面准备就绪时,使用JQuery将其设置为只读。

$(document).ready(function() {
    $("#textBox").attr('readonly','readonly');
});

然后在时机成熟时在客户端激活它:

$("#textBox").removeAttr('readonly');