【问题标题】:How to enter restricted characters in input field如何在输入字段中输入受限字符
【发布时间】:2015-03-31 00:22:08
【问题描述】:

我正在使用 jQuery 方法来阻止 input 字段中的某些字符,例如 #$%^&*()

现在,我如何在输入字段中输入这些字符(如何破解此输入字段)。

 $('#textinput').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9@]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }

    e.preventDefault();
    return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="textinput" name="mname" type="text" placeholder="Sanoj Lawrence" class="form-control input-md">

【问题讨论】:

  • 您为什么想要将这些字符放在那个输入字段中?如果它们被阻止,那么它们将在服务器端被阻止(我希望),在客户端阻止它们只是一种礼貌,可以为您节省多余的页面加载。
  • 如果您想在输入字段中输入这些章程,请将这些字符复制并粘贴到允许的输入字段中。
  • 我需要检查这个方法是否安全,它是否会限制这些章程
  • @Sadikhasan 即使用户尝试复制和粘贴,我如何阻止它
  • 鼠标右键复制粘贴

标签: jquery html validation jtextfield


【解决方案1】:

您可以使用input 事件,它会在用户更改您的输入内容时触发(键入、通过 Ctrl + V 粘贴、通过上下文菜单粘贴等)。将旧值存储在变量中,并在用户尝试输入无效值时重置内容:

var textinput = $('#textinput');
var oldValue = textinput.val();
var regex = new RegExp("^[a-zA-Z0-9@]*$");

textinput.bind('input', function () {
    if (regex.test(textinput.val())) {
        oldValue = textinput.val();
        return;
    }
    textinput.val(oldValue);
});

但正如大卫托马斯在他对您的问题的评论中指出的那样:也必须在服务器上检查该值。通过 JavaScript 检查它对您的用户来说是一个很好的功能,但如果有人真的想破解它,它对您没有帮助。他可以在浏览器中禁用 JavaScript,或者使用伪造的表单等发送请求。

【讨论】:

    【解决方案2】:

    你可以限制鼠标右键点击如下,你需要编码限制控制键。

    $("#textinput").on("contextmenu",function(e){
       e.preventDefault();
    });
    

    更新

    $('#textinput').keypress(function (e) {
        var regex = new RegExp("^[a-zA-Z0-9@]+$");
        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);  
        if(e.ctrlKey)
        {
           return false;  //To restrict control key
        }
        if (regex.test(str)) {
            return true;
        }   
        e.preventDefault();
        return false;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 2012-04-08
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多