如何在输入字段中输入受限制的字符

时间:2015-01-31 17:16:52

标签: jquery html validation jtextfield

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

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

 $('#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">

2 个答案:

答案 0 :(得分:0)

您可以按如下方式限制鼠标右键单击,您需要编写限制控制键的代码。

$("#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;
});

答案 1 :(得分:0)

您可以使用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,或者使用伪造的表格等发送请求。