我有以下代码(为了清晰起见,已清除代码):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript">
            function updateTextBox()
            {
                var lstSource = document.getElementById("lstSource");
                var details = lstSource[lstSource.selectedIndex].text;
                document.getElementById("txtDetails").value = details;
            }
        </script>
    </head>
    <body>
        <select id="lstSource" onChange="updateTextBox();">
            <option value="26">My Text

has a line break!</option>
        </select>
        <textarea id="txtDetails"></textarea>
    </body>

    </html>

现在,当我在我的选择框中单击一个项目时,我想让换行符出现在文本区域中,但是,它们根本不会出现。当填充select控件时,我已经签入了调试器,并且断行符肯定在那里(当我使用相同文本的“title”属性时,它们也会显示在工具提示中)。
当我调试JavaScript代码并查看包含在变量详细信息中的实际数据(使用charCodeAt)时,我可以看到没有换行符,即“我的文本”和“有换行符”之间只有一个空格字符(代码32)。
有人知道这是可以解决的,还是我必须忍受这种(在我看来)小车行为?也许我错过了什么。。。
提前谢谢
G。

最佳答案

HTMLcollapses whitespace,包括换行符。
您可以使用<br>元素,但它们在<option>元素中don't work。所以,我担心你想用HTML实现什么是不可能的。。。

09-26 22:36