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

原创 2013年12月18日 16:03:56

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

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有冲突

 


 

相关文章推荐

ASP.NET 2.0中TextBox服务器控件的ReadOnly和Disabled属性

在以前的ASP.NET 1.x版本中,设置为ReadOnly的TextBox控件在客户端更改了值后,在服务器端仍然可以得到修改后的值,但在ASP.NET 2.0中,这种做法已经限制。这是为了提高应用程...

TextBox属性设为Readonly时,.net后端程序无法取值的问题解决

TextBox属性设为Readonly时,C#后端程序无法取值的问题解决 TextBox在Readonly時以Javascript給值無法在後端取得,我自己在测试的时候,在默认Readonly ...
  • poolatu
  • poolatu
  • 2013年03月14日 10:45
  • 5219

input设置为disabled提交后获取不到该值的解决方法

在做网站管理后台的用户修改功能时,由于当前用户修改个人信息时规定用户名不能修改,故使用了input标签的disabled属性,但是在提交数据后却发现用户名显示为空了。后来一查才知道input设置为di...

input设置为disabled提交后获取不到该值的解决方法

在做网站管理后台的用户修改功能时,由于当前用户修改个人信息时规定用户名不能修改,故使用了input标签的disabled属性,但是在提交数据后却发现用户名显示为空了。后来一查才知道input设置为di...

七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能。系列文章七天学会ASP.NET MVC...

七天学会ASP.NET MVC (四)——用户授权认证问题

小编应各位的要求,快马加鞭,马不停蹄的终于:七天学会 Asp.Net MVC 第四篇出炉,在第四天的学习中,我们主要了学习如何在MVC中如何实现认证授权等问题,本节主要讲了验证错误时的错误值,客户端验...

ASP.NET 2.0中TextBox服务器控件的ReadOnly和Disabled属性

在以前的ASP.NET 1.x版本中,设置为ReadOnly的TextBox控件在客户端更改了值后,在服务器端仍然可以得到修改后的值,但在ASP.NET 2.0中,这种做法已经限制。这是为了提高应用程...
  • jxqvip
  • jxqvip
  • 2011年04月21日 14:58
  • 695

asp.net服务器控件调用js

asp.net服务器控件调用js 11111 222222 11111 22222 function change() { //下面这句使用Form1.DropDownList1.value...
  • Draling
  • Draling
  • 2014年02月13日 16:07
  • 2501

Asp.Net服务器控件开发的Grid实现(二)Html标记渲染

我们先来实现Grid类,代码如下: Grid.cs using System; using System.Collections.Generic; using System.ComponentMode...

ASP.NET服务器控件开发(1)--封装html

====================================================== 注:本文源代码点此下载 =============================...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:html中input type="text" 的readonly 属性与asp.net服务器控件TextBox的readonly属性的js赋值、调用的小bug
举报原因:
原因补充:

(最多只允许输入30个字)