html - 防止在 nowrap textarea 中将空格转换为不间断空格

标签 html css google-chrome safari

在 Chrome 和 Safari 中,有一个 <textarea>white-space:nowrap applied 导致输入末尾的各种空格字符转换为不间断空格(ASCII 160,十六进制 \xA0 )。

问题演示:http://jsfiddle.net/ND2LS/2/

<textarea rows="2" cols="40">foo</textarea>
<label>ASCII: <output></output></label>
<script type="text/javascript">
  var t = document.querySelector('textarea'),
      o = document.querySelector('output');
  (t.onchange = t.oninput = function(){
    var s = t.value;
    for (var cc=[],i=s.length;i--;) cc[i]=s.charCodeAt(i);
    o.value = cc.join(", ");
})();
</script>

在末尾键入空格将在每次按下时显示以下输出:

ASCII: 102, 111, 111, 160
ASCII: 102, 111, 111, 32, 160
ASCII: 102, 111, 111, 32, 160, 160
ASCII: 102, 111, 111, 32, 160, 32, 160

如何防止这种破坏用户输入的行为,同时仍然防止换行?

在 Safari v7.0.1 OS X 和 Chrome v33.0.1750.117 OS X 上体验过。Firefox 没有遇到这个问题。

最佳答案

textarea 的所谓 DOM0 wrap="off" 属性避免了这个问题,并且仍然防止换行。

固定演示:http://jsfiddle.net/ND2LS/3/

<textarea rows="2" cols="40" wrap="off">foo</textarea>

关于html - 防止在 nowrap textarea 中将空格转换为不间断空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21962191/

相关文章:

javascript - 嵌套 html 元素中的 onClick 事件

html - 手机菜单不显示

html - 将页面分成两个垂直且相同的带边框部分

jquery - 有没有办法在 jquery 中为 cookie 添加相同的站点值?

dom - 如何在 Chrome 开发者工具中使用 XPath 或 CSS 选择器搜索 DOM 元素?

javascript - HTML 应用程序使用 native 消息传递在 Chrome 上运行外部 exe

javascript - 停止特定元素上的传播

CSS 流体列布局的最佳方式

javascript - 奇怪的 CSS 位置正确 :0 issue

html - 将包含未定义大小的图像的 div 放在另一个 div 的底部