我有一个textarea
,在textarea
中按下的每个 Enter 键我希望用一个子弹说出新行(*)。怎么去呢?
请不要jQuery。
之后我可以观察 Enter 键!我是否应该获得textarea
的全部价值并附加*并再次填充textarea
?
答案 0 :(得分:25)
你可以这样做:
<body>
<textarea id="txtArea" onkeypress="onTestChange();"></textarea>
<script>
function onTestChange() {
var key = window.event.keyCode;
// If the user has pressed enter
if (key === 13) {
document.getElementById("txtArea").value = document.getElementById("txtArea").value + "\n*";
return false;
}
else {
return true;
}
}
</script>
</body>
虽然按Enter键的新行字符仍然会出现,但它开始得到你想要的东西。
答案 1 :(得分:15)
只需将此tad添加到您的textarea。
onkeydown="if(event.keyCode == 13) return false;"
答案 2 :(得分:7)
您需要考虑用户在文本中间按Enter键的情况,而不仅仅是在结尾处。我建议按照建议检测keyup
事件中的回车键,并使用正则表达式确保值符合您的要求:
<textarea id="t" rows="4" cols="80"></textarea>
<script type="text/javascript">
function formatTextArea(textArea) {
textArea.value = textArea.value.replace(/(^|\r\n|\n)([^*]|$)/g, "$1*$2");
}
window.onload = function() {
var textArea = document.getElementById("t");
textArea.onkeyup = function(evt) {
evt = evt || window.event;
if (evt.keyCode == 13) {
formatTextArea(this);
}
};
};
</script>
答案 3 :(得分:3)
我的场景是当用户在输入textarea时敲击回车键时我必须包含换行符。我使用下面的代码实现了这一点......希望它可以帮助某人...... < / p>
function CheckLength()
{
var keyCode = event.keyCode
if (keyCode == 13)
{
document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value = document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value + "\n<br>";
}
}
答案 4 :(得分:0)
你可以这样做:
.play
&#13;
$("#txtArea").on("keypress",function(e) {
var key = e.keyCode;
// If the user has pressed enter
if (key == 13) {
document.getElementById("txtArea").value =document.getElementById("txtArea").value + "\n";
return false;
}
else {
return true;
}
});
&#13;