我有一组带有输入的html文本框,当用户点击“添加”按钮时,使用javascript来获取文本输入并格式化放在HTML选择框中的字符串。这些框中的第一个应该包含一个2个字符的数字,但也可以接受一个空格。格式化的字符串如下所示:
01-ABC-O 02-DEF-I
但是我需要一种方法来显示与其他元素排列的空白数字
-GHI-O
当javascript添加选项时,这种类型的条目会显示正常,但是当重新加载页面并且使用值重新填充select时(我使用Java,jsp和struts 1.1,如果这有帮助)它会得到相同的值(保留空格)但是空格不再显示在选择控件中(我查看了页面源,它看起来与javascript添加选项时相同)。我尝试用
替换空格,但这只是打印字符串“& nbsp”而不是空格。我也试过使用“pre”html块和css white-space属性,但都没有用。
如果需要进一步澄清,请与我们联系。
答案 0 :(得分:8)
您需要用
替换空格并且它应该有效 - 请注意结束的分号(问题中的示例中缺少)!当你通过Javascript进行操作时,大多数(所有?)浏览器会自动渲染空格,但是当页面加载时空间就在那里,所有(有时只有一个)浏览器将被忽略。
您还应该将font-family:
CSS属性应用于指定单倍间距字体的选择,以确保所有内容都正常排列。
答案 1 :(得分:1)
您可以在输出值的区域使用pre css样式。
<style type="text/css">
#element {
white-space: pre;
}
</style>
<div id="element">
stuff goes here
</div>
这将保留div元素中的所有空格(其他元素类型也可以),然后您不必担心使用非中断空格。
答案 2 :(得分:1)
您是要通过脚本添加它,您需要使用Escape Codes for Space“%A0”然后使用unescape()解码
logTypeList[i] = new Option(unescape(" kent Agent".replace(/ /g, "%A0")), "theValue");
答案 3 :(得分:0)
您可以使用Unicode字符'SPACE'(U + 0020)代替
(“\ u0020”)
答案 4 :(得分:0)
logTypeList[i] = new Option(unescape(" kent Agent".replace(/ /g, "%A0")), "theValue");
由于不推荐使用unescape,您可能需要使用decodeURI:
logTypeList[i] = new Option(decodeURI(" kent Agent".replace(/ /g, "%C2%A0")), "theValue");
的更多信息
答案 5 :(得分:0)
使用javascript创建选择选项时,要保留空白区域,请使用&#34; \ xa0&#34; - 这是一个无破坏的空间角色。