jQuery给禁用的asp.net服务器控件赋值

页面中包含asp.net服务器控件TextBox,因业务需要设置为禁用(或readonly),只能通过选择数据来填充!代码如下:

<asp:TextBox CssClass="field-text" runat="server" TextMode="SingleLine" id="cstname" Enabled="false" maxlength="50" />

或者

<asp:TextBox CssClass="field-text" runat="server" TextMode="SingleLine" id="cstname" readonly="true" maxlength="50" />

这个时候问题出现了,jQuery在前端通过异步获取数据并将值赋到对应控件上后,在表单提交至服务器端时,后端取到的却是空值?

$("#cstname").attr("value", "张三");  //前端可以赋值成功,并能够正确显示
obj.Cstname = this.cstname.Text;  //后端取到的却是空值“”

原因还没弄清楚!不过,采取了以下折衷方案:

1、控件不禁用,也不readonly

2、页面加载后,通过前端进行只读属性设定

$(document).ready(function () {
            $("#cstname").attr("readonly", true);
}

这样就能够达到后端取到正确的值了!至于为什么,还没弄清楚。

其它同学有好的方案?或能解释下,非常感谢!

posted on 2011-09-23 22:28  xwwanghai  阅读(1610)  评论(0编辑  收藏  举报