我在jQuery UI模式对话框中有一个textarea。 我尝试像这样更改文本框值:
1) $('#textarea').val('test value');
2) $('#textarea').text('test value');
这两种方法都适用于所有浏览器。除了在Firefox中它只适用于ONCE。
当使用新值再次调用其中任何一个时,textarea值保持不变。无论是在模态对话框打开时还是在打开模式对话框之前(它都以textarea id =“textarea”作为内容的一部分打开 - 所以在打开之前更改它的值,应该在打开时保留值文本框)。
正如其他帖子中所建议的,我尝试了
$('#textarea').css('display', 'block');
在设置textarea的值之前和之后。
任何线索?
我无法弄清楚为什么在FireFox中出现这个问题 - 通常是Firefox中的所有功能,但在其他浏览器中却没有。
谢谢。
答案 0 :(得分:0)
因为它工作一次,它没有完全破碎。由于您使用Firefox进行开发,我假设您也在使用Firebug。您应该通过编写
来尝试简单的调试console.log($('#textarea'));
在您第一次尝试设置值之前和之后。看到jQuery能够在第一次设置后选择它会很有趣。
答案 1 :(得分:0)
这不是设置值的问题,而是使用对话框('open')方法在每次调用时重置那些textarea值。这似乎是FF和jqueryUI对话之间的一些错误,因为几个月前它开始发生,它之前运行良好。
解决方案很简单,只需在显示对话框后填充textareas的值,而不是之前。
答案 2 :(得分:0)
我使用Firefox 5.0.1和jQuery UI 1.8.14
遇到了这个问题我通过在单击事件处理程序中移动.dialog()调用而不是创建对话框onload,以某种方式破解了这一点。这意味着每次单击打开对话框都会重新创建整个对话框(我认为),这可能是修复textarea问题的原因。
您的里程可能会有所不同。