Javascript onclick调用函数似乎不起作用

时间:2013-02-13 21:13:23

标签: javascript html

我有我的textarea,当点击它时我希望文本清除

<textarea id="cow" rows="5" name="message" cols="50" onfocus="clear()" >Please provide a link to an image no wider than 500px. </textarea>

和来自外部js文件的javascript:

var cow=document.getElementById("cow").value;
function clear(){ document.getElementById("cow").value=' '; }

我意识到我可能会使用Jquery,但我只是在努力学习javascript。

2 个答案:

答案 0 :(得分:4)

信不信由你,你的代码没问题,除了你命名函数 clear

在内联事件处理程序中,document对象在某些浏览器中连接到事件处理程序的作用域链中。这有一个令人遗憾的结果,clear不是指你的功能,而是指document.clear。此行为未标准化,因此根据您使用的浏览器,您可能会看到不同的结果。

如果你重命名你的功能,它就可以了。http://jsfiddle.net/QqMsX/


你一定要阅读“Is "clear" a reserved word in Javascript?”,我还解释了如何避免这种情况。

答案 1 :(得分:2)

似乎浏览器正在尝试调用document.clear而不是您创建的清除功能。如果您将功能重命名为clearText,则可以正常使用http://jsfiddle.net/7meL7/

避免此问题的一个好方法是完全避免使用JS属性

<textarea id="cow" rows="5" name="message" cols="50">Please provide a link to an image no wider than 500px. </textarea>

// There are better ways, but this is the simplest crossbrowser way
document.getElementById("cow").onfocus = function() {
    this.value = '';
}