我有我的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。
答案 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 = '';
}