1

我有这个用于提交表单的脚本和 html:

<script type="text/javascript">
   function ApplyIndent() {
      var txtArea = document.getElementById('w2').value;
      var myRegExp = / /g;
      txtArea = txtArea.replace(myRegExp, "&#160;");
   }
</script>


<table cellpadding="0" cellspacing="0" border="0">
   <tr>
      <td><textarea id="w2" cols="50" rows="5"/></td>
   </tr>

   <tr>
      <td><input id="btnIndent" value="Indent" onclick="ApplyIndent()"/></td>
   </tr>
</table>

我在这里尝试完成的是用不间断空格替换空格,因为即使您在文本区域中缩进文本行,除非您使用不间断空格,否则它只会在提交表单后自动对齐。我测试了警告文本区域,我得到了我想要的结果,但是,我需要的是来自警报的值以显示在文本区域本身上。我该怎么做?仅仅为了获得所需的空间而输入 ascii 字符是低效的,我们不希望这样。提前致谢!

使用 <space> 缩进

提交表单后使用 <space> 的结果

使用不间断空格缩进

提交表单后使用不间断空格时的结果

4

1 回答 1

1
var txtArea = document.getElementById('w2');
txtArea.value = txtArea.value.replace(/ /, "&#160;");

请注意,如果您想要由 #160 表示的实际字符而不是拼写的 HTML 实体,请使用:

"\xA0"

编辑:再想一想, CSS 有什么问题white-space: pre-wrap

于 2012-12-15T06:50:10.210 回答