我希望当用户按下逗号,短划线或输入键时,textarea replace将显示一个空格。
此代码仅适用于回车键。
$("#site_name").on("keypress",function(e) {
var key = e.keyCode;
if ((key == 188)||(key == 13)||(key == 173)||(key == 191)) {
document.getElementById("site_name").value=document.getElementById("site_name").value + " ";
return false;
} else {
return true;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea name="site_name" id="site_name" style="width: 100%;" rows="3"> </textarea>
答案 0 :(得分:1)
如果您想继续使用JavaScript事件,我建议您使用keydown
事件。 keydown
和keypress
会在映射到不同功能时为您提供不同的结果。逗号= 188,短划线= 189,输入= 13.
$("#site_name").on("keydown",function(e) {
var key = e.keyCode;
console.log("keycode: " + key);
if ((key == 189)||(key == 188)||(key == 13)||(key == 173)||(key == 191))
{
document.getElementById("site_name").value=document.getElementById("site_name").value + " ";
return false;
}
else
{
return true;
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="site_name" id="site_name" style="width: 100%;" rows="3"> </textarea>
&#13;
答案 1 :(得分:0)
这使用正则表达式。我已将keypress
事件替换为keyup
,因为{<1}}在添加实际字符之前已激活,因此无法立即删除逗号/破折号/换行符。如果您确实需要此行为,可以将其还原为keypress
。
keypress
$("#site_name").on("keyup", function() {
$(this).val($(this).val().replace(/[\,\-\n]/g, " "));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="site_name" id="site_name" style="width: 100%;" rows="3"></textarea>
中的g
表示使用了全局标志。这需要替换所有出现的所需字符。如果未使用此标志并且您复制粘贴了一堆逗号和短划线,则只会替换第一个。有关正则表达式的更多信息here。
答案 2 :(得分:0)
您只需将keyCode
更改为which
var key = e.which;
答案 3 :(得分:0)
试试45
&amp;而是44
个密码代码:
$("#site_name").on("keypress",function(e) {
var key = e.keyCode;
console.log(key);
if ((key == 45)||(key == 13)||(key == 44)||(key == 191)) {
document.getElementById("site_name").value=document.getElementById("site_name").value + " ";
return false;
} else {
return true;
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="site_name" id="site_name" style="width: 100%;" rows="3"> </textarea>
&#13;