替换逗号,短划线,并在textarea中输入带空格的键

时间:2017-03-10 21:26:48

标签: javascript keycode

我希望当用户按下逗号,短划线或输入键时,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>

4 个答案:

答案 0 :(得分:1)

如果您想继续使用JavaScript事件,我建议您使用keydown事件。 keydownkeypress会在映射到不同功能时为您提供不同的结果。逗号= 188,短划线= 189,输入= 13.

&#13;
&#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;
&#13;
&#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个密码代码:

&#13;
&#13;
$("#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;
&#13;
&#13;