2011-03-08 66 views
4

代码可以在这里进行测试:http://jsfiddle.net/yWUTK/3/与textarea和.text的JQuery/Firefox错误?

<textarea id='textbox'></textarea> 

<span onclick="$('#textbox').text('One');">One</span> 
<span onclick="$('#textbox').text('Two');">Two</span> 

行为此在Chrome和Firefox是一样的,你点击一个或两个,并改变textarea的。但是,在Firefox上,如果您手动更改textarea的内容,则单击时不再更新。 Chrome继续正常工作。

我运行Firefox 3.6.15

任何人都可以解释这种现象?我不确定我是否做错了什么,或者它是否是一个真正的错误。我的实际执行使用适当的标记和$(document).ready等。

+0

为什么要绑定onclick属性中的click事件*? – Keeper 2011-03-08 11:20:49

+0

更新后,我不知道我在想什么lol – NibblyPig 2011-03-08 11:24:42

回答

7

然而,您确实是正确的,将它们更改为val()works

<span onclick="$('#textbox').val('One');">One</span> 
<span onclick="$('#textbox').val('Two');">Two</span> 

val()可以说是更正确的使用方法。另外,我相信你知道,你不应该使用内联事件处理程序,除非像上面这样简单的例子。

+0

但是,你应该删除'$(this).click ...',因为每次点击你都绑定一个额外的点击事件。只需要'onclick =“$('#textbox')。val('One');”'而不是。 – 2011-03-08 11:21:25

+0

这是对JQuery的最近更改吗?我的印象是,val()不适用于textareas,因为该值与输入字段没有相同的表示 – NibblyPig 2011-03-08 11:21:51

+0

@Blair McMillan是的,我刚刚复制了OP的示例。 – alex 2011-03-08 11:24:47

相关问题