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

 


 

HTML中让表单input等文本框为只读不可编辑的方法

disabled="true" 此果文字会变成灰色,不可编辑。 readOnly="true" 文字不会变色,也是不可编辑的 Disabled说明该input无效,及其value不会传递给任何程...
  • tingliting
  • tingliting
  • 2016年03月05日 12:45
  • 1700

ASP.NET 遍历设置控件的只读属性(测试过)

for (int i = 0; i < Page.Controls.Count; i++){   //重点注意:System.Web.UI.Control ctr in Page.Controls[i...
  • feixiang7443
  • feixiang7443
  • 2011年01月21日 16:53
  • 1216

用Checkbox来控制文本框是否为灰色不可编辑

(1)点击 CheckBox使得输入框可以使用,否则为灰色不能使用 过期时间: ...
  • fengsuiyingdong
  • fengsuiyingdong
  • 2015年07月14日 18:11
  • 6917

设置checkbox为只读(readOnly)的两种方式

checkbox没有readOnly属性,如果使用disabled=“disabled”属性的话,会让checkbox变成灰色的,用户很反感这种样式可以这样让它保持只读: 方式一:  设置它的on...
  • lulidaitian
  • lulidaitian
  • 2017年09月01日 16:06
  • 448

html+js实现文本框背景及只读属性修改

因为工作需求接触了html+js,发现了这是一个很神奇的领域,宽松的语法要求,超文本类现实的输出语言,对于主要学习C语言的我感觉特别新奇。...
  • zc1107473010
  • zc1107473010
  • 2015年07月14日 17:36
  • 1502

checkbox属性checked="checked"通过js已设置,但是不勾选

使用jquery实现全选功能,jquery版本是1.11.1 $("input[type=checkbox][name='check_item']").attr('checked', true); ...
  • ynwso
  • ynwso
  • 2015年06月09日 09:22
  • 14982

asp.net 子页面使用js给ReadOnly的TextBox赋值

主页面 前台代码:
  • nvhaixx
  • nvhaixx
  • 2016年11月30日 11:28
  • 499

自定义控件Checkbox添加ReadOnly 属性

        private bool read = false;        ///         /// 只读属性        ///         [Description("只读属性...
  • chenshaolinqing
  • chenshaolinqing
  • 2011年06月29日 11:21
  • 1850

javascript 设置input和select 框只读属性 获取disabled后的值并传给后台

document.getElementById("input").readOnly=true;  //O应大写 input只读属性 有两种方式可以实现input的只读效果:disable...
  • fn_2015
  • fn_2015
  • 2016年06月29日 16:24
  • 4624

checkbox控件的enable,disabled,以及与前台js的交互控制

往往有这样的场景,两个checkbox,当checkbox1选中的情况下checkbox2的才可用,checkbox2的这个“可用”在服务端的代码为checkbox2.Enabled=true,而在生...
  • hzfu007
  • hzfu007
  • 2009年03月17日 17:24
  • 7241
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:html中input type="text" 的readonly 属性与asp.net服务器控件TextBox的readonly属性的js赋值、调用的小bug
举报原因:
原因补充:

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