【问题标题】:FireFox textarea issue in modal dialog模式对话框中的 FireFox textarea 问题
【发布时间】:2011-04-12 17:55:25
【问题描述】:

我在 jQuery UI 模式对话框中有一个文本区域。 我尝试像这样更改文本框的值:

1) $('#textarea').val('test value');
2) $('#textarea').text('test value');

这两种方法都适用于所有浏览器。除了在 Firefox 中,它只能运行一次。

当再次使用新值调用其中任何一个时,textarea 值保持不变。无论是在模式对话框打开时还是在打开它之前(它以 textarea id="textarea" 作为内容的一部分打开 - 因此在打开之前更改它的值,应该在打开文本框)。

按照其他帖子的建议,我尝试过

$('#textarea').css('display', 'block');

在设置 textarea 的值之前和之后。

有什么线索吗?

我不明白为什么这个问题只发生在 FireFox 中 - 通常一切都在 Firefox 中起作用,但在其他浏览器中却没有。

谢谢。

【问题讨论】:

  • 我遇到了同样的问题。你解决过这个问题吗?

标签: jquery firefox dialog textarea modal-dialog


【解决方案1】:

因为它只工作一次,它并没有完全坏掉。由于您正在使用 Firefox 进行开发,因此我假设您也在使用 Firebug。您应该通过编写

来尝试简单的调试
console.log($('#textarea'));

在您第一次尝试设置该值之前和之后。看到 jQuery 在第一次设置后能够选择它会很有趣。

【讨论】:

  • 对我来说,当我执行 console.log(甚至警报)时,这些值是正确的。但它们并没有出现在 FF4 中。
【解决方案2】:

这不是设置值的问题,而是 dialog('open') 方法在每次调用时重置这些 textarea 值。这似乎是 FF 和 jqueryUI 对话框之间的一些错误,因为它在几个月前开始发生,它之前运行良好。

解决方案很简单,在显示对话框后填充 textareas 的值,而不是之前。

【讨论】:

    【解决方案3】:

    我在使用 Firefox 5.0.1 和 jQuery UI 1.8.14 时遇到了这个问题

    我通过在点击事件处理程序中移动 .dialog() 调用而不是创建对话框 onload 以某种方式解决了这个问题。这意味着每次单击打开对话框都会重新创建整个对话框(我认为),这可能是解决 textarea 问题的原因。

    您的里程可能会有所不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多