onfocus& onblur不在IE中工作

时间:2009-09-25 14:50:46

标签: javascript onblur onfocus

我已经编写了一些代码,允许我在输入表单上显示一些带有灰色的文本,当用户关注它时,如果有意义的话,文本将会消失并变得无法识别......

function editableAlt (elem, colour1, colour2) {
    var elem = document.getElementById(elem);
    elem.onfocus = function () {
        if(this.value == this.defaultValue) {
            this.value = ""; // remove the default text, so the user can enter their own
            this.style.color = "#" + colour1; // change the text colour 
        }
    };
    elem.onblur = function () {
        if(this.value == '') {
            this.value = this.defaultValue; // user left it blank? revert back to the default text
            this.style.color = "#" + colour2; // and change the colour back too
        }
    }
}

这适用于大多数页面,但由于某些原因,onfocus和onblur根本不起作用 - 例如,如果我将其更改为onclick,则触发没有问题。

还有什么我可以尝试的吗? :(我正在使用JQuery,但删除它似乎根本没有影响它。

干杯

2 个答案:

答案 0 :(得分:3)

我发现IE在javascript错误方面非常无情。我通过jslint运行你的代码并得到以下错误:


错误: 第2行第14个问题:'elem'已定义。

var elem = document.getElementById(elem);

第10行第23个问题:使用'==='与''进行比较。

if(this.value == '') {

第14行问题6:缺少分号。

}

隐含的全球:文件2


不试图吝啬帮助你或任何事情,但我猜你是否修复了这些错误,你会看到更理想的结果。祝你好运!

答案 1 :(得分:0)

真是个白痴,对不起伙计们!我尝试删除所有其他Javascript文件,但错过了最重要的一个是它包装在PHP和IE if语句,d'O!

正在使用Suckerfish sfFocus导致它破裂:http://htmldog.com/articles/suckerfish/shoal/

抱歉:(非常感谢您的建议