在javascript中,通过输入指定的换行符不会在alert中创建换行符

时间:2015-06-12 15:42:45

标签: javascript newline

http://jsfiddle.net/bobbyrne01/Lnq5mffs/

HTML ..

<input type="text" id="separator" value="Doesnt\nwork" />
<input type="button" id="button" value="submit" />

javascript ..

document.getElementById('button').onclick = function(){
    alert(document.getElementById('separator').value);
    alert("This\nworks");
};

输出..

  • 第一个对话框:

first dialog

  • 第二个对话框:

second dialog

1 个答案:

答案 0 :(得分:2)

没错,&#34; \ n&#34;意味着&#34;新线&#34;仅在字符串文字中使用时。您不能指望avarage用户输入&#34; \ n&#34;在输入框中,期望它被解释为新行。当用户输入&#34; \ n&#34;在输入框中,value属性设置为&#34; \\ n&#34;。

如果您确实需要将输入框内容解释为字符串文字,则可以使用替换,就像在这个小提琴中一样:http://jsfiddle.net/Lnq5mffs/2/

document.getElementById('button').onclick = function(){
    alert(document.getElementById('separator').value.replace('\\n', '\n'));
    alert("This\nworks");
};

编辑:如果您想为用户提供输入多行文字的方法,请使用textarea:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea