完全限制输入字段的输入

时间:2015-03-25 19:28:35

标签: javascript jquery regex forms input

表单字段可以对它们施加限制以停止输入数字,字符或符号,但是没有兴趣可以完全限制任何类型的输入。例如。

的Javascript

    var digitsOnly = /[1234567890]/g;
    var integerOnly = /[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 (code==27) { this.blur(); return false; }
        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;
            }

        }

HTML:

<form action="" method="get">
<p><label for="input1">digitsOnly: </label> <input type="text" id="input1" onkeypress="return restrictCharacters(this, event, digitsOnly);" /></p>

<p><label for="input2">integerOnly</label> <input type="text" id="input2" onkeypress="return restrictCharacters(this, event, integerOnly);" /></p>

<p><label for="input3">alphaOnly</label> <input type="text" id="input3" onkeypress="return restrictCharacters(this, event, alphaOnly);" /></p>

要停止完全限制,我会假设您将联合使用不同的正则表达式变量,但是如何阻止用户复制和粘贴内容或将内容拖入字段以及阻止按键操作?

2 个答案:

答案 0 :(得分:2)

你可以给它“readonly”属性:

<input type=text readonly=readonly ...>

“readonly”属性与“disabled”属性不同;表单字段可以是“只读”但它仍将使用表单发布或由jQuery序列化。 “禁用”属性(如果存在)使得一旦表单发布到服务器,就好像该字段不存在一样。

您可以使用CSS设置只读字段的样式:

input[readonly] { border-width: 0px; border-style: none; }

(或其他)。您也可以从JavaScript设置属性:

document.getElementById("someInput").readOnly = true;

答案 1 :(得分:0)

您也可以完全禁用它:

<input type="text" disabled=true >
相关问题