5

我正在尝试查看文本字段长度是否至少为一定长度。这是我的代码:

<form name="form2" id="form2" onsubmit="return validate()">
length 4: <input type="text" name = "t" id="t" />
<input type="button" name="submit" value="submit" />
</form>

<script>
function validate() {
    document.write("good");
    submitFlag = true;
    if(document.form2.t.value.length!=4){
        submitFlag=false;
        alert("ivalid length - 4 characters needed!");
    }
    return submitFlag;
}
</script>

当我单击提交时,没有任何反应。

4

7 回答 7

5

将提交按钮更改为 type="submit"。该表单永远不会被提交,因此不会调用 validate 函数。

于 2012-04-18T19:56:12.123 回答
1

输入类型需要是“提交”

<form name="form2" id="form2" onsubmit="return validate()">
   length 4: <input type="text" name = "t" id="t" />
    <input type="submit" name="submit" value="submit" />  <!--INPUT TYPE MUST BE SUBMIT -->
    </form>

    <script>
    function validate() {
        document.write("good");
        submitFlag = true;
        if(document.form2.t.value.length!=4){
            submitFlag=false;
            alert("ivalid length - 4 characters needed!");
        }
        return submitFlag;
    }
</script>
于 2012-04-18T19:58:32.307 回答
0

您还应该在文本输入中添加一个 maxlength 属性,这将对用户有所帮助。

<form name="form2" id="form2" onsubmit="return validate();">
    <input type="text" name="t" id="t" maxlength="4"/>
    <input type="submit" name="submit" value="submit"/>
</form>

<script type="text/javascript">
    function validate()
    {
        if ( document.getElementById("t").value.length != 4 )
        {
            alert( "Invalid length, must be 4 characters" );
            return false;
        }   
        return true;
    }
</script>
于 2012-04-18T20:01:34.607 回答
0

如果您想要“至少一定长度”,您可能想要大于或等于 (>=),而不是不等于 (!=)

于 2012-04-18T19:55:25.710 回答
0

你的按钮应该是

<input type="submit" name="submit" value="submit" />

否则onsubmit事件不会发生。此外,console.log()用于调试,而不是document.write().

于 2012-04-18T19:56:31.670 回答
0

我发现了各种错误:

  • 不要使用document.write(),它会覆盖当前打开的文档
  • form2不是 的财产document。您可以使用document.forms.form2,但document.getElementById("t")这里更简单
  • 您的表达式不检查“至少 4”,它检查“正好 4”。
  • 您的按钮不会提交任何内容。将其更改为<button type="submit"><input type="submit" />
  • 您可以为输入指定一个pattern=".{4}"或给它一个required属性
于 2012-04-18T19:56:45.023 回答
0

你有几个问题。1)您需要将您的输入设置为提交按钮,2)您需要删除您的document.write()声明。将您的代码更改为以下内容(或查看此 jsFiddle):

<form name="form2" id="form2" onsubmit="return validate()">
length 4: <input type="text" name = "t" id="t" />
<input type="submit" name="submit" value="submit" />
</form>

<script>
function validate() {
    submitFlag = true;
    if(document.form2.t.value.length!=4){
        submitFlag=false;
        alert("ivalid length - 4 characters needed!");
    }
    return submitFlag;
}
</script>​​​​

您非常接近,但是您可以对该代码进行一些清理(注意:我没有提供任何内容)。

于 2012-04-18T19:58:20.550 回答