Javascript 检查文本字段值长度

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/10216933/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 00:21:58  来源:igfitidea点击:

checking text field value length

javascript

提问by droidus

I am trying to see if the text field length is at least a certain length. here is my code:

我想看看文本字段长度是否至少是某个长度。这是我的代码:

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

when I click submit, nothing happens.

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

回答by Geoff Warren

Change your submit button to type="submit". The form is never getting submitted so the validate function isn't being called.

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

回答by daker

The input type needs to be "submit"

输入类型需要为“提交”

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

回答by Jonathan Payne

You should also add a maxlength attribute to your text input, it'll help the user.

您还应该为文本输入添加一个 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>

回答by Christopher Scott

You probably want greater than or equal to (>=), instead of not equal to (!=) if you want "at least a certain length"

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

回答by paislee

Your button should be

你的按钮应该是

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

otherwise the onsubmitevent will not occur. Also, use console.log()for debugging, rather than document.write().

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

回答by Bergi

I've spotted various errors:

我发现了各种错误:

  • don't use document.write(), it will overwrite the currently open document
  • form2is no property of document. You may use document.forms.form2, but document.getElementById("t")is simpler here
  • Your expression doesn't check for "at least 4", it checks for "exactly 4".
  • Your button won't submit anything. Change it to <button type="submit">or <input type="submit" />
  • you could specify a pattern=".{4}"for the input or give it a requiredattribute
  • 不要使用document.write(),它会覆盖当前打开的文档
  • form2不是 的属性document。您可以使用document.forms.form2,但document.getElementById("t")这里更简单
  • 您的表达式不检查“至少 4”,它检查“正好 4”。
  • 你的按钮不会提交任何东西。将其更改为<button type="submit"><input type="submit" />
  • 您可以pattern=".{4}"为输入指定一个或给它一个required属性

回答by scottheckel

There's a few issues that you have. 1) You need to make your input a submit button and 2) you need to remove your document.write()statement. Change your code to the following (or see this jsFiddle):

你有几个问题。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>????

You were pretty close, but you could use some clean-up on that code (Note: I did not provide any).

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