我已经编写了一些代码,允许我在输入表单上显示一些带有灰色的文本,当用户关注它时,如果有意义的话,文本将会消失并变得无法识别......
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,但删除它似乎根本没有影响它。
干杯
答案 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/
抱歉:(非常感谢您的建议