我有一个文本框,可以让用户点击输入。当他们点击输入时,我检查输入并用\n
替换回车。但是它仍然向我的数据库发送一个回车。
可能有什么不对?
以下是代码:
var pp = comment.value;
alert(pp.replace(/\r?\n|\r/g, "\n"));
comment.value = pp.replace(/\r?\n|\r/g, "\n");
并且在我的数据库中,即使我要替换它,我仍然会得到回车符。
答案 0 :(得分:1)
这是一个用纯javascript做的例子,但是如果你使用像jquery这样的东西会更清晰。
<html>
<head>
</head>
<body>
<textarea id='txt'></textarea>
<script type='text/javascript'>
var txtarea = document.getElementById('txt');
txtarea.onkeypress = keyHandler;
function keyHandler(e){
if (document.all) { e = window.event; }
if (document.layers || e.which) { pressedKey = e.which; }
if (document.all) { pressedKey = e.keyCode; }
if(pressedKey == '13'){
txtarea.value = this.value + '\\n';
return false;
}
}
</script>
</body>
</html>
答案 1 :(得分:1)
如果在表单上设置onsubmit
处理程序,则可以在发送之前更改textarea元素的内容。然后,您可以使用replace
方法将每个\r
更改为\n
:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Replace carriage returns in textarea</title>
</head>
<body>
<form id="theForm">
<textarea id="theTextarea" name="txtarea" rows=10 cols=50></textarea>
<input type="submit" value="Send">
</form>
<script>
function replace_newlines() {
var textField = document.getElementById("theTextarea");
var textString = textField.value;
textField.value = textString.replace(/\r/g, "\n");
}
document.getElementById("theForm").onsubmit = replace_newlines;
</script>
</body>
</html>