在输入文本中粘贴多行文本(非textarea)

问题描述:

我有一个input type text,用户输入的数字代码用,-(作出范围)分隔。我希望允许我的网站用户粘贴代码列表。我已经设法绑定粘贴事件(使用jQuery),并解析输入字符串删除空格和一切。在输入文本中粘贴多行文本(非textarea)

当用户代码列表为多行时,问题开始。在浏览器尝试将其插入输入之前,我没有找到任何处理该文本的方法,因此字符串在第一行的末尾被截断。有没有什么办法可以在浏览器截断它之前操纵字符串?

谢谢!

更新here有一个JSFiddle的例子...愚蠢的IE,在FF这很好。

+0

你能表现出[的jsfiddle(http://jsfiddle.net/),好吗? – Ryan 2012-03-02 15:05:52

+0

你能提供样品吗?我在JSfiddle中测试了这个,没有任何问题。 – Smamatti 2012-03-02 15:06:02

+0

我刚刚做了这个例子......这是愚蠢的IE – Diego 2012-03-02 15:12:32

我编写一个插件来代替输入一个textarea一个的jsfiddle。那就是:

http://jsfiddle.net/paska/KVdEY/14/

通过删除换行符将字符串转换为一行。

"multiline\ntext\nline3".split('\n').join(''); 
+1

当粘贴事件触发时,我已经失去了所有的行,但第一个。 – Diego 2012-03-02 15:13:25

+0

哦,男人。这将是麻烦...我认为解决方案将使用'textarea'来接受粘贴,然后将值复制到您的'input'中。 – 2012-03-02 15:24:40

检查此SO线程。它连接到具有代码,我认为将处理您的问题

Is it possible to get pasted text without using the setTimeout() function?

链接到的jsfiddle http://jsfiddle.net/pxfunc/KDLjf/

+0

在Firefox中,这种方式非常完美(正如我的方法)。可悲的是在IE浏览器中没有,它也截断了第一行之后的文本。 – Diego 2012-03-05 11:26:19