2010-03-02 111 views
1
编辑

我发展我的asp.net web表单应用程序。文本框设置这样禁用文本框在IE8

<asp:TextBox ID="txt1" runat="server" Enabled="false" ></asp:TextBox> 

,这是对应的HTML标记

<input name="txt1" type="text" value="1.0" id="txt1" disabled="disabled" /> 

它是不可编辑高达了这一点。

我能在IE8(按F7)光标浏览,然后这个领域变成可编辑的,但文字是灰色的,因此给人一种错误的感觉,该字段为可编辑的用户。如果我将文本框标记为只读,这种情况不会发生,但我不想将其标记为只读字段。有关如何在插入符号浏览时使文本框处于禁用模式的任何建议。

EDIT1:我不是在寻找这将改变IE设置/注册表的解决方案,正在寻找一个纲领性的解决方案,我的网站是一个面向公众的网站

EDIT2:查看状态的页面和启用对照

+0

为什么你不想只使用只读方法解决问题? – adam0101 2010-03-02 20:59:08

+0

我们有一些现有的代码,将其更改为只读将意味着我们将不得不改变它在其他地方也 – ram 2010-03-02 21:16:49

+0

我看不出有什么影响的设置已经禁用的文本框为只读将有你需要做其他的变化。 – adam0101 2010-03-02 21:45:12

回答

0

我可以让你用这个脚本快速入门:

<script> document.onkeyup = KeyCheck; 


function KeyCheck() { alert(document.getElementById("txt1").value); } </script> </script> 

将这个一路上的HTML的顶部。 现在您可以掌握按键了。 当插入符号模式,IE浏览器似乎忽略文本的JavaScript事件

+0

这是一个解决方案?你只是在'onkeyup'事件上显示文本框的值。它如何防止我改变文本框的值? – ram 2010-03-02 19:25:40

+0

看到我的第二个答案。 我在第一个答案中给了你处理这种情况的提示。 感谢您的-ve标记! – 2010-03-03 14:49:55

0

好吧。我给你一个建议。 (感谢-1) 这是您正在寻找的HTML代码。确保使用ASP代码填充initialVal。

<script> 
document.onkeyup = KeyCheck;  
var initialVal="1.0" 

function KeyCheck() 
{ 
    if(document.getElementById("txt1").value != initialVal) { 
     document.getElementById("txt1").value = initialVal; 
     return false; 
    } 
} 
</script> 

<input name="txt1" type="text" value="1.0" id="txt1" disabled="disabled" />