textarea提交后台时,位于文字中的空格和回车换行均能正确获取和转化,但是段首敲入的空格自动被清除了,在action中都没有,请教……
该回答引用ChatGPT
在 HTML 的标准规范中,浏览器会自动移除 < textarea > 标签内部的首尾空白符(包括空格、制表符、回车符等),这是为了保证文本内容的正确性,避免出现不必要的空格和换行符。
如果你需要在后台获取到 < textarea > 中的段首空格,可以通过以下方法来解决:
在 < textarea > 标签中使用特殊的符号代替空格,例如使用 来代替空格。
<textarea name="content"> 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 动态将原始文本内容赋值给一个隐藏的表单项,然后将其一并提交到后台。后台就可以获取到包含段首空格的原始文本内容了。