html中input type="text" 的readonly 属性与asp.net服务器控件TextBox的readonly属性的js赋值、调用的小bug

我还是个刚刚入门的程序猿与大家分享下最近我做的一个项目,如有错误,请大师们指点一二!

HTML:

  <tr>
                            <td>
                                <asp:Label ID="Label5" runat="server" CssClass="Page_Label">登陆账号</asp:Label>
                            </td>
                            <td>
                                <input type="text" id="txtSignMember" runat="server"  class="Page_TextBox" readonly="readonly"/>
                                <asp:ImageButton ID="lBUser" runat="server" ImageUrl="~/Themes/Default/Images/icon_view.gif"
                                    OnClientClick="return OnSelect();"></asp:ImageButton>
                            </td>
                            <td>
                                <asp:Label ID="Label6" runat="server" CssClass="Page_Label">姓名</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox ID="txtSignMemberName" runat="server" CssClass="Page_TextBox"></asp:TextBox>
                            </td>
                        </tr>

Js:

    <script type="text/javascript">

        function OnSelect() {
            var returnUserValue = window.showModalDialog("FUserSelected.aspx", "dialogHeight: 500px; dialogWidth: 400px; dialogTop: 150px; dialogLeft: 350px; edge: Raised; center: Yes; resizable: Yes; status: No;");
            if (returnUserValue != undefined) {
                var str = returnUserValue.split('|');
                document.getElementById('txtSignMember').value = str[1].toString();
                document.getElementById('txtSignMemberName').value = str[0].toString();
            }
            return false;
        }
    </script>

.cs

        billEntity.Signmember = txtSignMember.Value.Trim();
        this.txtSignMemberName.Enable=true;        
        billEntity.Signmembername = txtSignMemberName.Text.Trim();

 

实质上讲就是:当服务器控件属性为Readonly或者Enable时js可以给控件赋值,但是后台调用不到该值

主要测试

一.主要是前台写asp.net控件<asp:TextBox runat="server" >并用Enable=“false” 和Readonly=true测试

1.当txtsigmembername的enable属性为true时js给控件<asp:TextBox ....>赋值在页面上可以看到有值,观察转换前台html<input type="text"  id=".." disabled="true" value=“有值”>,结果在后台调用的时候会接收不到值,值为空

2.当txtsigmembername的Readonly属性为true时js给控件<asp:TextBox ....>赋值在页面上可以看到有值,观察转换前台html<input type="text"  id=".." readonly="readonly" value=“有值”>,结果在后台调用的时候会接收不到值,值为空

二.使用在后台加属性的方法给控件加Readonly进去     this.txtSignMemberName.Attributes.Add("readonly", "readonly");

实验结果是前台效果不变,并且在后台有值,观察转换前台html<input type="text"  id=".." readonly="readonly" value=“有值”>跟上面第一条的第二个前台是一致的。

我怀疑有能是微软的bug 或者是iE8有问题--》未测

三.使用在前台改写控件以html的形式<input type="text" runat="server" id=".." readonly="readonly" >稍微修改下后台this.txt.value的形式

实验结果是前台效果不变,并且在后台有值

最终结果二、三是可行的,结论是:微软的readonly转换上与js有冲突

 


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值