如何阻止用户输入一些字符来输入?

时间:2019-05-01 07:48:28

标签: javascript html web

我有一个Web应用程序,有一个输入用户可以在其中添加一些名称,但是我不希望用户输入撇号'。当用户按下'符号html时,无需插入字符。我是html的新手,也有js代码文件。

<div class="col-md-4">
    <input name="name" type="text"  class="form-control" placeholder="Name">
</div>

3 个答案:

答案 0 :(得分:2)

您可以将 value 中的字符替换为 empty 字符。我还将建议您为控件使用其他名称,因为 name 是JavaScript中的关键字:

document.querySelector('[name=txtName]').addEventListener('input',function(){
    this.value = this.value.replace("'", '');
});
<div class="col-md-4">
  <input name="txtName" type="text"  class="form-control" placeholder="Name">
</div>

答案 1 :(得分:1)

尝试一下:

document.getElementById("input").onkeypress = function(e) {
    /^[a-zA-Z0-9]+$/.test(this.value)
};
<input type="text" id="input">

更改正则表达式以匹配所需的字符,当前仅包括字母(小写和大写)和数字。

来自How to block special characters in HTML input field?的代码

答案 2 :(得分:1)

var digitsOnly = /[1234567890]/g;
var floatOnly = /[0-9\.]/g;
var alphaOnly = /[A-Za-z]/g;

function restrictCharacters(myfield, e, restrictionType) {
    if (!e) var e = window.event
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    var character = String.fromCharCode(code);
    // if they pressed esc... remove focus from field...
    if (code==27) { this.blur(); return false; }
    // ignore if they are press other keys
    // strange because code: 39 is the down key AND ' key...
    // and DEL also equals .
    if (!e.ctrlKey && code!=9 && code!=8 && code!=36 && code!=37 && code!=38 && (code!=39 || (code==39 && character=="'")) && code!=40) {
        if (character.match(restrictionType)) {
            return true;
        } else {
            return false;
        }
    }
}