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
checking text field value length
提问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
回答by Bergi
I've spotted various errors:
我发现了各种错误:
- don't use
document.write()
, it will overwrite the currently open document form2
is no property ofdocument
. You may usedocument.forms.form2
, butdocument.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 arequired
attribute
- 不要使用
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).
您非常接近,但是您可以对该代码进行一些清理(注意:我没有提供任何内容)。