我有一个textarea
,当在 textarea
中按下每个Enter键时,我想要以符号 (*) 开始新的一行。如何操作?
请不要使用jQuery。
我可以观察 Enter 键吗,之后呢?我需要获取整个textarea
的值并在其后附加 *,再重新填充 textarea
吗?
我有一个textarea
,当在 textarea
中按下每个Enter键时,我想要以符号 (*) 开始新的一行。如何操作?
请不要使用jQuery。
我可以观察 Enter 键吗,之后呢?我需要获取整个textarea
的值并在其后附加 *,再重新填充 textarea
吗?
<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>
虽然按回车键时产生的换行符仍将存在,但这是开始实现您想要的内容的一种方式。
window.event
。 - Tim Downonkeypress="onTestChange();"
替换为 onkeypress="onTestChange(event);"
,并将 function onTestChange() {
替换为 function onTestChange(e) {
,将 var key = window.event.keyCode;
替换为 var key = e.keyCode
。 - Ethan O'Brien只需将此标签添加到您的文本区域即可。
onkeydown="if(event.keyCode == 13) return false;"
您需要考虑用户在文本中间按下回车键的情况,而不仅仅是在结尾处。我建议在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>
evt = evt || window.event;
- Fifiwindow.event
。现在已经不再需要了。 - Tim Down我的情景是,当用户在文本区域中输入时按下回车键,我必须包含一个换行符。我使用以下代码实现了这一点......希望能帮助到某些人......
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>";
}
}
$("#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;
}
});
<textarea id="txtArea"></textarea>