Javascript 文本字段的验证无效
我有一个带有复选框和文本字段的html页面,JavaScript能够验证 复选框,但不包括文本字段。有人能帮忙吗?我不知道哪里不对Javascript 文本字段的验证无效,javascript,Javascript,我有一个带有复选框和文本字段的html页面,JavaScript能够验证 复选框,但不包括文本字段。有人能帮忙吗?我不知道哪里不对 <html> <head> <script type="text/javascript"> function validator() { var c = document.getElementsByName("chk"); var k=false;
<html>
<head>
<script type="text/javascript">
function validator()
{
var c = document.getElementsByName("chk");
var k=false;
for( var i=0; i<c.length; i++ )
{
if( c[i].checked )
{
k=true;
return(true);
}
}
if(k){
return(true);
}
else{
alert("Select one environment");
return(false);
}
var ap = form.getElementById("a1");
if(ap.value == "" || ap.length == 0)
{
alert("Enter the path");
ap.setfocus();
return(false);
}
else
{
return(true);
}
var p = form.getElementById("a2");
if(p.value == "" || p.length == 0)
{
alert("Enter the path");
form.p.setfocus();
return(false);
}
return(true);
}
</script>
</head>
<body>
<form action="/car.java" onsubmit="return validator(this);">
<br />
<p>
<input name="chk" type="checkbox" />One
<input name="chk" type="checkbox" />Two
<input name="chk" type="checkbox" />Three
</p>
<br />
<input name="a1" id="a1" size="123" style="width: 766px; height: 21px;" type="text" />
</p>
<p>
<input name="a2" id="a2" size="123" style="width: 766px; height: 21px;"
type="text" />
</p>
<textarea cols="95" name="status" rows="11"></textarea>
<input name="sub" size="28" style="width: 156px; height: 29px;" type="button"
value="Submit" />
</p>
</form>
</body>
</html>
函数验证器()
{
var c=document.getElementsByName(“chk”);
var k=假;
对于(var i=0;i
我认为您的意思是ap.value.length==0
,但无论哪种方式,它都是多余的,因为您已经检查了空字符串。只要如果(!ap.value)
就可以了。此外,您在运行文本框部分之前就返回了
上面说,你应该考虑使用HTML5表单验证。它更干净,并且可以防止这样的问题。
< p>问题在你的函数中,在程序结束之前,你返回一个值,用文本字段验证。你需要捕获变量上的返回值,并且在方法结束时只返回它的值。
像这样的
function validator() {
var c = document.getElementsByName("chk");
var k = false,
isValid = false;
for (var i = 0; i < c.length; i++) {
if (c[i].checked) {
k = true;
}
}
if (k) {
isValid = true;
} else {
alert("Select one environment");
}
var ap = form.getElementById("a1");
if (ap.value == "" || ap.length == 0) {
alert("Enter the path");
ap.setfocus();
} else {
isValid = true;
}
var p = form.getElementById("a2");
if (p.value == "" || p.length == 0)
{
alert("Enter the path");
form.p.setfocus();
}
return isValid;
}
函数验证器(){
var c=document.getElementsByName(“chk”);
var k=假,
isValid=false;
对于(变量i=0;i
您能告诉我我应该在代码的哪一部分进行更改吗?它仍然会抛出“选择一个环境”并转到下一页。它不会为文本框发出警报进行一些更改。现在,如果我选中复选框而不填充文本框,它会抛出警报并以表单操作的形式转到页面,而它不应该这样做
function validator() {
var c = document.getElementsByName("chk");
var k = false,
isValid = false;
for (var i = 0; i < c.length; i++) {
if (c[i].checked) {
k = true;
}
}
if (k) {
isValid = true;
} else {
alert("Select one environment");
}
var ap = form.getElementById("a1");
if (ap.value == "" || ap.length == 0) {
alert("Enter the path");
ap.setfocus();
} else {
isValid = true;
}
var p = form.getElementById("a2");
if (p.value == "" || p.length == 0)
{
alert("Enter the path");
form.p.setfocus();
}
return isValid;
}