【问题标题】:emptying the textarea in IE清空IE中的textarea
【发布时间】:2010-10-21 17:57:17
【问题描述】:

当从输入上传文件时,我试图清空文本区域中的任何值/文本。它适用于 FF 和 Chrome,但 IE 不这样做。有没有办法解决这个问题?
非常感谢。

$('input[type=file]').change(function(){
   $("textarea#txt_id").val('');
});

<textarea name="txt" id="txt_id" rows="8" cols="64"></textarea>

<input type="file" name="file" id="file_id" />

【问题讨论】:

  • 您是否确认.change() 处理程序正在触发?像alert() 这样简单的东西?
  • IE 搞砸了更改事件。它会火吗?抛出一个警报,看看你是否点击了事件处理程序。
  • 这在 IE 中对我来说很好用 (IE8)....jsfiddle.net/EsMtW

标签: javascript jquery


【解决方案1】:

(来源:#955630

您可能需要使用.html() 而不是.val()

【讨论】:

  • 这就是我要建议的!或者可能是.text('')
  • 不,您应该在&lt;textarea&gt; 上使用.val()。见this answer
  • 这一点没有歧义。使用 textarea 的 value 属性(这是 jQuery 的 val() 方法所做的)是可靠地实现这一点的唯一方法。
  • 场景是OP想要改变一个textarea的值。唯一可靠的方法是更改​​ textarea 的 value 属性,这是 jQuery 的 val() 方法所做的。 html() 改为更改 textarea 的 innerHTML 属性,这并不总是有效。所以不,这是不对的。
  • 什么会阻止.val() 使用他的原始代码?
【解决方案2】:

我会改变

 $('input[type=file]').change(function(){
   $("textarea#txt_id").val('');
});

<textarea name="txt" id="txt_id" rows="8" cols="64"></textarea>

<input type="file" name="file" id="file_id" />

 $('input[type=file]').change(function(){
   $("textarea#txt_id").html("");
});

<textarea name="txt" id="txt_id" rows="8" cols="64"></textarea>

<input type="file" name="file" id="file_id" />

您实际上并没有像在输入中那样修改 'value' 属性,只是在 textarea 元素之间修改 HTML 文本。

【讨论】:

  • 没有。修改 textarea 的 value 属性是唯一可靠的方法。修改innerHTML 属性并不总是有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 2011-04-15
相关资源
最近更新 更多