页面中包含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);
}
这样就能够达到后端取到正确的值了!至于为什么,还没弄清楚。
其它同学有好的方案?或能解释下,非常感谢!