Javascript验证:阻止特殊字符单击提交时从输入文本框

时间:2014-07-25 05:39:39

标签: javascript php jquery validation

如何通过编辑以下代码进行验证来限制在文本框(txt_edition)中输入特殊字符?我只想输入数字。

<script>
function validateForm() 
{
var x = document.forms["frm_bokAdd"]["txt_edition"].value;
if (x==null || x=="") 
{
    alert("Edition must be filled out");
    return false;
} 
</script>

以下是我的表格

<form  name="frm_bokAdd" action ="#"  method="post" onsubmit="return validateForm()" >
<table border="0" align="center">
    <tr><td> <input type="text" name="txt_edition" ></td></tr>
    <tr><td> <input type="submit" name="bookIns_submit" value="Add"></td></tr>
</table>
</form>

7 个答案:

答案 0 :(得分:1)

可以使用此

<强> HTML

<input type="text" onkeypress="return isNumber(event)" >

JS (身体末尾)

function isNumber(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}

<强> DEMO is Here

答案 1 :(得分:0)

使用正则表达式。

if (x.match(/^[0-9]*\.[0-9]*$/) !== null) {
   //text is only numbers (use /^[0-9]*$/ for integers)
}

答案 2 :(得分:0)

试试吧

 <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <style type="text/css">
            body
            {
                font-size: 9pt;
                font-family: Arial;
            }
        </style>
    </head>
    <body>
        Alphanumeric value:
        <input type="text" id="text1" onkeypress="return IsAlphaNumeric(event);" ondrop="return false;"
            onpaste="return false;" />
        <span id="error" style="color: Red; display: none">* Special Characters not allowed</span>
        <script type="text/javascript">
            var specialKeys = new Array();
            specialKeys.push(8); //Backspace
            specialKeys.push(9); //Tab
            specialKeys.push(46); //Delete
            specialKeys.push(36); //Home
            specialKeys.push(35); //End
            specialKeys.push(37); //Left
            specialKeys.push(39); //Right
            function IsAlphaNumeric(e) {
                var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
                var ret = ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode));
                document.getElementById("error").style.display = ret ? "none" : "inline";
                return ret;
            }
        </script>
    </body>
    </html>

答案 3 :(得分:0)

尝试使用正则表达式 -

    var edition = document.getElementById('txt_edition').value;
    outputVal = edition.replace(/[^0-9a-zA-Z]/g,"");       
    if (edition != outputVal) {
        return false;
    }

答案 4 :(得分:0)

您可以限制按键,如下所示

function restrict_letters(e) {
    var keyCode = e . keyCode == 0 ? e . charCode : e . keyCode;
    // only 0 to 9
    if (keyCode < 48 && keyCode > 57) {
        return false;
    }
}

您可以在here中获得更多关键代码。

同样更改下面的html函数调用,

<input type="text" onkeypress="return restrict_letters(event)">

注意:函数调用需要为输入字段提供而不是表单提交。

答案 5 :(得分:0)

  

如何限制在文本框中输入特殊字符(txt_edition)

唐&#39;吨。允许用户以他们喜欢的方式获得有效值,您只关心该值在发送到服务器时是否有效,即使这样,您也应该在那里验证。

  

通过编辑以下代码进行验证?我只想输入数字。

只需在提交表单时进行测试,并在调用中传递对表单的引用:

<form ... onsubmit="return validateForm(this)" >

和功能:

function validateForm(form) {
  var value = form.txt_edition.value;

  if (/\D/.test(value) || value == '') {
    alert("Edition must be filled out and contain only numbers");
    return false;
  }
} 

答案 6 :(得分:0)

允许用户仅输入数字和点。使用此正则表达式

 function NumAndTwoDecimals(event , obj){
    reg = /[^0-9.,]/g;
    obj.value =  obj.value.replace(reg,"");
 }

SEE DEMO HERE

HTML代码

<input id="txtId" type="text" onkeyup="NumAndTwoDecimals(event , this);"></input>

限制用户在“。”之后只输入两个数字。运营商使用

 function NumAndTwoDecimals(e , field) {
    var val = field.value;
    var re = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)$/g;
    var re1 = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)/g;
    if (re.test(val)) {
        //do something here

    } else {
        val = re1.exec(val);
        if (val) {
            field.value = val[0];
        } else {
            field.value = "";
        }
    }
}

SEE DEMO HERE