【问题标题】:JQuery/Firefox bug with textarea and .text?带有 textarea 和 .text 的 JQuery/Firefox 错误?
【发布时间】:2023-03-29 01:31:01
【问题描述】:

代码可以在这里测试:http://jsfiddle.net/yWUTK/3/

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

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

在 Chrome 和 Firefox 中的行为是相同的,您单击一个或两个,它会更改文本区域。但是,在 Firefox 上,如果您随后手动更改 textarea 的内容,则单击时它不再更新。 Chrome 继续正常工作。

我正在运行 Firefox 3.6.15

谁能解释这种行为?我不确定我做错了什么,或者它是否是一个真正的错误。我的实际实现使用了正确的标记和 $(document).ready 等。

【问题讨论】:

  • 为什么要将点击事件内部绑定到onclick属性?
  • 更新了,我不知道我在想什么哈哈

标签: javascript jquery


【解决方案1】:

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

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

val() 可以说是更正确的使用方法。

另外,我敢肯定你知道,你不应该使用内联事件处理程序,除非在上面这样的简单示例中。

【讨论】:

  • 但是,您应该删除$(this).click...,因为每次点击您都会绑定一个额外的点击事件。只需使用onclick="$('#textbox').val('One');"
  • 这是最近对 JQuery 的更改吗?我的印象是 val() 不适用于 textareas,因为该值与输入字段的表示方式不同
  • @Blair McMillan 是的,我刚刚复制了 OP 的示例。
  • @SLC 我相信 jQuery 为您抽象了这一点,通过使用 select 元素获取当前选定的 optionvalue 属性,val() 应该如何工作。
  • @alex 我知道你做到了,但是,假设你的答案最终被标记为正确,我们不希望人们稍后复制“错误”的代码。另外,OP现在更新了问题:)
猜你喜欢
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多