textarea中内容段首空格在action中获取不到

textarea提交后台时,位于文字中的空格和回车换行均能正确获取和转化,但是段首敲入的空格自动被清除了,在action中都没有,请教……

该回答引用ChatGPT

在 HTML 的标准规范中,浏览器会自动移除 < textarea > 标签内部的首尾空白符(包括空格、制表符、回车符等),这是为了保证文本内容的正确性,避免出现不必要的空格和换行符。


如果你需要在后台获取到 < textarea > 中的段首空格,可以通过以下方法来解决:

  • 在 < textarea > 标签中使用特殊的符号代替空格,例如使用 来代替空格。

    <textarea name="content">&nbsp;This is some text with leading space.</textarea>
    
  • 使用 JavaScript 在提交表单前动态添加一个隐藏的表单项,将原始文本内容一并提交给后台。

    <form id="myform" action="your-action-url" method="post">
    <textarea name="content"> This is some text with leading space.</textarea>
    <input type="hidden" name="original_content" value="">
    <button type="submit" onclick="prepareFormSubmission()">Submit</button>
    </form>
    <script>
    function prepareFormSubmission() {
    const contentTextarea = document.querySelector('textarea[name="content"]');
    const originalContentInput = document.querySelector('input[name="original_content"]');
    originalContentInput.value = contentTextarea.value;
    }
    </script>
    

    在提交表单时,使用 JavaScript 动态将原始文本内容赋值给一个隐藏的表单项,然后将其一并提交到后台。后台就可以获取到包含段首空格的原始文本内容了。