使用JavaScript验证输入长度

Validating input length using JavaScript

本文关键字:输入 验证 JavaScript 使用      更新时间:2023-09-26

如果用户在文本框中输入少于4个字母,则显示错误。这是我现在正在使用的代码,它有点工作。问题是-它显示了错误,然后它也提交了值。

如果用户输入少于4个字母,我想停止提交。

JavaScript

<script type="text/javascript">
function check(what)
{
    var length=what.search_text.value.length;   
    if (length >3 && length < 21)
        what.submit();
    else
        alert("Your nick should be 4-20 characters long.");
}
</script>

<form method=post action=''><input type=hidden name=todo value=search>
<p align=center>
    Enter Your Name: 
    <input type=text name=search_text value='$search_text'>
    <input onclick=check(this.form); return false; type=submit value=Search>
</p>
</form>
<script type="text/javascript">
function check(what)
{
    var length=what.search_text.value.length;   
    if (length >3 && length < 21){
        what.submit();
    }
    else {
        alert("Your nick should be 4-20 characters long.");
        return false;
    }
}
</script>
<?php
echo "<form method='post' action='' onsubmit='return check(this);'><input type=hidden name=todo value=search>
<p align=center>Enter Your Name: <input type=text name=search_text value='$search_text'><input type=submit value=Search></p><br>
</form>";
?>

变化:

  1. onsubmit='return check(this);'添加在表单标签
  2. 从按钮提交中删除onclick
  3. js函数else条件下添加的return false;

建议:总是尝试使用jQuery,它很简单,可以减少你的代码长度

在无效值的情况下,您需要

return false;

使表单提交被取消

你可以通过使用RegularExpressionValidator控件

来实现这一点

像这个例子一样设计你的文本框。

<asp:TextBox ID="txtCityCode" runat="server" Width="147px" CssClass="txt" MaxLength="2"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="rfvCityCode" runat="server" ErrorMessage="City Code is required information."
                    ControlToValidate="txtCityCode" Display="None" ValidationGroup="Save" SetFocusOnError="True"></asp:RequiredFieldValidator>
                     <asp:RegularExpressionValidator ID="revCityCode" runat="server" ErrorMessage="Numbers and special characters not allowed in 'City Code' field."
                    ControlToValidate="txtCityCode" ValidationExpression="^[a-zA-Z's]+$" ValidationGroup="Save"
                    Display="None" SetFocusOnError="True"></asp:RegularExpressionValidator>

根据您的需要更改ValidationExpression

        <script type="text/javascript">
        function check(what)
        {
            var length=what.search_text.value.length;   
            if (length >3 && length < 21)
               { what.submit(); return true; } 
            else
                {alert("Your nick should be 4-20 characters long."); 
                 return false;}
        }
        </script>
and in HTML 
  <input onclick='return check(this.form)' type="submit" value="Search">