为什么表单类型文本的输入被禁用或只读

时间:2014-07-11 15:24:53

标签: javascript html css

我正在尝试在我们的旧网站上解决“浏览器兼容性”问题,该网站有很多javascript,css和html。它们是asp页面,但我正在评估实际发送到浏览器的内容。

我们有一个页面有几个文本框(类型=文本的html输入元素),除非你在IE 7上,否则你不能输入它们。当你点击它时,新版本的IE和其他现代浏览器文本框,你甚至没有得到闪烁的光束光标。但它瞬间闪现边界。

在Chrome中,我右键单击并执行Inspect Element,然后删除了文本框类和所有事件处理程序,问题仍然存在。然后我检查了通常的嫌疑人:只读,禁用,启用,最大长度,并且它们都是不受限制的。

我可以检查哪些其他DOM属性或样式属性?我不应该只是因为我在Chrome检查元素选项卡中删除了html,它是否生效了?

我只是在寻找一个需要检查的奇怪事项列表,因为我不是主要的Web开发人员。事实上,它在较旧的浏览器中工作但没有新的浏览器使我认为某些html,css或javascript的解释方式不同,或者正在处理以前未处理过的其他事情。也许较新的浏览器已经发现(浮出水面)一些糟糕/不合逻辑的代码。

编辑: 这是一个重现问题的小提琴,至少在Chrome中是这样: http://jsfiddle.net/2n2sJ/6/

<input type="text"/>



var ns6 = document.getElementById && !document.all
var isMenu = false;
var menuSelObj = null;
var overpopupmenu = false;

function mouseSelect(e) {
    var obj = ns6 ? e.target.parentNode : event.srcElement.parentElement;

    if (isMenu) {
        if (overpopupmenu == false) {
            isMenu = false;
            overpopupmenu = false;
            document.getElementById('menudiv').style.display = "none";
            document.getElementById('Div1').style.display = "none";
            return true;
        }
        return true;
    }
    return false;
}

document.onmousedown = mouseSelect;

1 个答案:

答案 0 :(得分:0)

当javascript处理点击或焦点事件,并且javascript返回false时,这将使文本框显示为禁用。

让处理程序返回true而不是false以允许事件发生。