如何在 HTML 输入文本字段中输入换行符?
How to get line breaks entered into a HTML input text field?
我有一个 HTML 表单,其中包含 10 个文本类型的输入字段。我希望用户能够将 10 行的文本复制并粘贴到第一个输入字段中,然后自动将它们放入 Javascript 的 10 个字段中。但换行符似乎立即被删除,至少 Firefox 是这样。因此,当我使用 Javascript 获取第一个字段的值时,它不再有换行符。
有没有办法获取带有换行符的文本?我不能使用文本区域,因为这会导致其他问题。
好吧,这很奇怪。但你可以试试这个:
首先,html,你有这样的文本字段
<input classname="pastingBoxes" />
<input classname="pastingBoxes" />
<input classname="pastingBoxes" />
...
然后是JS
// first you get an array with all the inputs
let textfields = document.getElementsByClassName('pastingBoxes');
// so you assign input 0 a listener for the onpaste event
textfields[0].onpaste = function(event){
event.preventDefault();
// this will split the data on newline, so you get a value per line
let allValues = event.clipboardData.getData('Text').split(/\r?\n/)
// then cycle trough it to assign the values:
for(var i = 0; i < allValues.length; i++){
textfields[i].value = allValues[i];
}
};
好了!希望这可以帮助。
我有一个 HTML 表单,其中包含 10 个文本类型的输入字段。我希望用户能够将 10 行的文本复制并粘贴到第一个输入字段中,然后自动将它们放入 Javascript 的 10 个字段中。但换行符似乎立即被删除,至少 Firefox 是这样。因此,当我使用 Javascript 获取第一个字段的值时,它不再有换行符。
有没有办法获取带有换行符的文本?我不能使用文本区域,因为这会导致其他问题。
好吧,这很奇怪。但你可以试试这个:
首先,html,你有这样的文本字段
<input classname="pastingBoxes" />
<input classname="pastingBoxes" />
<input classname="pastingBoxes" />
...
然后是JS
// first you get an array with all the inputs
let textfields = document.getElementsByClassName('pastingBoxes');
// so you assign input 0 a listener for the onpaste event
textfields[0].onpaste = function(event){
event.preventDefault();
// this will split the data on newline, so you get a value per line
let allValues = event.clipboardData.getData('Text').split(/\r?\n/)
// then cycle trough it to assign the values:
for(var i = 0; i < allValues.length; i++){
textfields[i].value = allValues[i];
}
};
好了!希望这可以帮助。