sat*_*sat 23 javascript textarea
我有一个textarea
,Enter按下每个按键,textarea
我希望用一个子弹说出新行(*).怎么去呢?
请不要jQuery.
Enter在那之后,我可以观察钥匙!我是否应该获得整个价值textarea
并附加*并再次填写textarea
?
wil*_*oup 28
你可以这样做:
<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>
Run Code Online (Sandbox Code Playgroud)
虽然按Enter键的新行字符输入仍然存在,但它开始得到你想要的东西.
小智 15
只需将此tad添加到您的textarea.
onkeydown="if(event.keyCode == 13) return false;"
Run Code Online (Sandbox Code Playgroud)
您需要考虑用户在文本中间按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>
Run Code Online (Sandbox Code Playgroud)