使用 JavaScript 将 asp.net 控件设为只读为 false

making asp.net control readonly to false using javascript

本文关键字:只读 false 控件 net JavaScript asp 使用      更新时间:2023-09-26

我的问题是我在页面加载期间将文本框设为只读,并且我有编辑按钮。当他们单击编辑按钮时,我必须使其可编辑,即使用 JavaScript 使 readonly=false。注意:我必须使用不禁用的只读属性,因为禁用会使内容不可读看起来很明智,而且我必须使用 javascript 进行只读=true/可编辑。这是强制性的,因为控件位于对话框中,我不想回发。我尝试了以下代码。它抛出错误。未定义只读对象。

<input type="button"  id="hypJobDetailEdit" value="EDIT" id="btnedit" class="outlook-button" style="width: 85px" />
<asp:TextBox ID="txtrequestedby" runat="server" Width="150px" ReadOnly="true" />

JavaScript

<script>
$(document).on("click", "[id*=hypJobDetailEdit]", function () {   
     document.getElementById("MC_txtrequestedby").readOnly = false;    
});
</script>

ASP.NET 控件的只读状态在服务器上处理。所以你的JS代码没有能力直接影响它。 因此,将 ReadOnly 更改为 False 通常通过回发在服务器上进行。可能有一些方法可以通过代码隐藏中的[WebMethod]来做到这一点,但我不确定这是否会正确影响 ViewState。

这会将只读属性更改为 false:

$('#hypJobDetailEdit').on('click', function () {   
     $('#txtrequestedby').prop('readonly',false);   
});