在Chrome和Safari中,如果<textarea>
应用white-space:nowrap
会导致输入末尾的各种空格字符转换为不间断空格(ASCII 160,Hex \xA0
)。
<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没有遇到此问题。
答案 0 :(得分:2)
textarea的所谓DOM0 wrap="off"
属性可以避免这个问题,并且仍然可以防止换行。
<textarea rows="2" cols="40" wrap="off">foo</textarea>