使用JavaScript验证输入长度

时间:2013-03-22 09:28:21

标签: javascript html

如果用户在文本框中输入少于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>

HTML

<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>

4 个答案:

答案 0 :(得分:0)

如果值无效,则需要

return false;

以便取消表单提交

答案 1 :(得分:0)

<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. 从按钮提交
  3. 中删除了onclick
  4. return false;添加了js function的else条件
  5. 建议:总是尝试使用jQuery,这很简单,会缩短你的代码长度。

答案 2 :(得分:0)

您可以使用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

答案 3 :(得分:0)

        <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">