在asp.net多行文本框的javascript中忽略换行符
我在asp.net表单上有一个多行文本框,在过去的事件中调用下面的javascript函数 如果我粘贴任何数据,新行将被忽略 我不知道这是否与javascript函数有关。我可以在内部文本中看到“/n”,但不知何故它没有被正确地呈现。“hello\nworld”被渲染为“hello world”在asp.net多行文本框的javascript中忽略换行符,javascript,c#,asp.net,vb.net,Javascript,C#,Asp.net,Vb.net,我在asp.net表单上有一个多行文本框,在过去的事件中调用下面的javascript函数 如果我粘贴任何数据,新行将被忽略 我不知道这是否与javascript函数有关。我可以在内部文本中看到“/n”,但不知何故它没有被正确地呈现。“hello\nworld”被渲染为“hello world” 可能是因为HTML没有按照您期望的方式呈现新行。试试 我尝试了textbox.innerHTML=savedcontent.replace(/\n/g,“”)+pasteddata.replace(/\
可能是因为HTML没有按照您期望的方式呈现新行。试试
我尝试了textbox.innerHTML=savedcontent.replace(/\n/g,“”)+pasteddata.replace(/\n/g,“
”);但在新行“
”中呈现了两行新行“
”,我已经尝试了textbox.innerHTML=savedcontent.replace(/\n/g,
)+pasteddata.replace(/\n/g,
);但是,当您将“Hello\nworld”更改为“Hello
world”时,新行“
”中的两个新行“
”会按您期望的方式呈现吗?我不相信你的替换语句。是的,它确实将其替换为“Hello
world”,但“Hello
world”将被渲染为“Hello
world”
function handlepaste(textbox, e, label, len) {
var savedcontent = textbox.innerHTML;
if (e && e.clipboardData && e.clipboardData.getData) {// Webkit - get data from clipboard, put into editdiv, cleanup, then cancel event
if (/text\/html/.test(e.clipboardData.types)) {
textbox.innerHTML = e.clipboardData.getData('text/html');
}
else if (/text\/plain/.test(e.clipboardData.types)) {
textbox.innerHTML = e.clipboardData.getData('text/plain');
}
else {
textbox.innerHTML = "";
}
waitforpastedata(textbox, savedcontent);
if (e.preventDefault) {
e.stopPropagation();
e.preventDefault();
}
return false;
}
else {// Everything else - empty editdiv and allow browser to paste content into it, then cleanup
textbox.innerHTML = "";
waitforpastedata(textbox, savedcontent, label, len);
return true;
}
}
function waitforpastedata(elem, savedcontent, label, len) {
if (elem.childNodes && elem.childNodes.length > 0) {
processpaste(elem, savedcontent, label, len);
}
else {
that = {
e: elem,
s: savedcontent
}
that.callself = function () {
waitforpastedata(that.e, that.s, label, len)
}
setTimeout(that.callself, 20);
}
}
function processpaste(textbox, savedcontent, label, len) {
pasteddata = textbox.innerHTML;
if (savedcontent.length > 0) {
textbox.innerHTML = savedcontent + pasteddata ;
}
if (pasteddata.length > len) {
textbox.value = textbox.value.substring(0, len);
document.getElementById(label).className = "red-text";
document.getElementById(label).innerHTML = 'You are trying to type too much information ';
}
else {
document.getElementById(label).className = "grey-text";
document.getElementById(label).innerHTML = textbox.value.length.toString() + ' of ' + len + ' chars';
}
}