Javascript string.split()在从文本框检索的字符串上失败

Javascript string.split()在从文本框检索的字符串上失败,javascript,jquery,Javascript,Jquery,我试图在newline上拆分一个字符串,这似乎适用于我在javascript中声明的字符串,但在我从html文本框检索的字符串上失败。这个想法是,这个字符串拆分事件应该在粘贴到文本框中时触发 我不知道为什么这只适用于硬编码字符串。请看一下JSFIDLE HTML JSFIDLE 始终是单行,因此您在其中输入的任何文本都将删除任何换行符。换句话说,问题不在于脚本,而在于文本源的格式 如果您想要多行文本框,请使用而不是始终是单行,因此您在其中输入的任何文本都将删除任何换行符。换句话说,问题不在于脚本

我试图在newline上拆分一个字符串,这似乎适用于我在javascript中声明的字符串,但在我从html文本框检索的字符串上失败。这个想法是,这个字符串拆分事件应该在粘贴到文本框中时触发

我不知道为什么这只适用于硬编码字符串。请看一下JSFIDLE

HTML JSFIDLE

始终是单行,因此您在其中输入的任何文本都将删除任何换行符。换句话说,问题不在于脚本,而在于文本源的格式

如果您想要多行文本框,请使用
而不是
始终是单行,因此您在其中输入的任何文本都将删除任何换行符。换句话说,问题不在于脚本,而在于文本源的格式


如果需要多行文本框,请使用
而不是一个
输入
字段为单行,这意味着任何换行符都将从中删除(或以其他方式处理)。您应该改用
textarea
元素

$(文档).ready(函数(){
$('textarea').bind('paste',null,函数(e){
$this=$(this);
setTimeout(函数(){
var columns=$this.val().split(/\r?\n/);
log(typeof$this.val());
console.log(列);
var newstring=“a\nb\r\nc”;
console.log(newstring.split(/\r?\n/);
}, 0);
});
});

一个
输入
字段是单行,这意味着任何换行符都将从中删除(或以其他方式处理)。您应该改用
textarea
元素

$(文档).ready(函数(){
$('textarea').bind('paste',null,函数(e){
$this=$(this);
setTimeout(函数(){
var columns=$this.val().split(/\r?\n/);
log(typeof$this.val());
console.log(列);
var newstring=“a\nb\r\nc”;
console.log(newstring.split(/\r?\n/);
}, 0);
});
});


你是说,你希望每个
\n
都在换行符上,对吗?你如何在textbox中添加
\r\n
?textbox不支持换行符,所以当你粘贴任何文本时,所有的换行符都会被删除。尝试使用TextArea,这样您就可以说,您希望每个
\n
都在换行符上,对吗?您如何在textbox中添加
\r\n
?textbox不支持换行符,因此当您粘贴任何文本时,所有换行符都将被删除。尝试使用TextArea谢谢!现在我觉得这很有道理。问题是,我确实希望用户只能输入单行内容。如果将多行输入粘贴到文本框中,我希望将输入拆分为换行符上的多个字符串,并且只有第一个字符串将保留在该文本框中,其余字符串将分配给自动添加的其他文本框。在这种情况下,使用textarea还有意义吗?还有其他解决办法吗?@jonas87是的,你需要使用文本区来保留换行符,以便识别它们。您可以将其设置为与常规单行输入字段完全相同的样式,包括防止用户调整其大小。谢谢!现在我觉得这很有道理。问题是,我确实希望用户只能输入单行内容。如果将多行输入粘贴到文本框中,我希望将输入拆分为换行符上的多个字符串,并且只有第一个字符串将保留在该文本框中,其余字符串将分配给自动添加的其他文本框。在这种情况下,使用textarea还有意义吗?还有其他解决办法吗?@jonas87是的,你需要使用文本区来保留换行符,以便识别它们。您可以将其设置为与常规单行输入字段完全相同的样式,包括防止用户调整其大小。
<input type="text" name="test">
$(document).ready(function() {
$('input').bind('paste', null, function(e){
    $this = $(this);

    setTimeout(function(){
        var columns = $this.val().split(/\r?\n/);
        console.log(typeof $this.val());
        console.log(columns);
        var newstring = "a\nb\r\nc";
        console.log(newstring.split(/\r?\n/));
    },0);
});
});