不知道我做错了什么,但即使目的地是空的,它应该带来警报,如果提交不应该。
但似乎无法找出问题所在
<html lang="en">
<head>
<script type="text/javascript">
function CheckFormPrac(form){
var pcheck = document.getElementById("phone").value;
pattern = /^^02\d{8}$/;
if (!pattern.test(pcheck)) {
alert("Please input your number in format of 02########.");
return false;
} else {
return true;
}
var cdest = document.getElementById("dest").value;
if (cdest == ""){
alert("Destination has not been filled.");
return false;
} else {
return true;
}
}
</script>
</head>
<body>
<form id="ffform" method="get" action=""
Onsubmit="return CheckFormPrac(this);" >
<fieldset>
Home Phone:
<input type="text" name="phone" id="phone" size=15 onblur="CheckFormPrac(this);" /> <br/>
What is your favorite destination to fly to?
<input type="text" name="dest" id="dest" size=30 onblur="CheckFormPrac(this);"/> <br/>
<input type="submit" value="Submit" />
<input type="reset" value="Reset"/>
</form>
答案 0 :(得分:0)
问题是从未到达检查#dest
值的代码。
if(!pattern.test(pcheck)) {
alert("Please input your number in format of 02########.");
return false;
} else {
return true;
}
将始终从函数返回控件,并且不会执行以下代码。从中移除else
块,代码将检查#dest
值。
请注意,事件处理程序不需要return true;
,因为它是表单的默认操作。
以下是包含一些更改的完整代码:
function CheckFormPrac() {
var pcheck = document.getElementById("phone").value;
if(!/^02\d{8}$/.test(pcheck)) {
alert("Please input your number in format of 02########.");
return false;
}
if(document.getElementById("dest").value.trim() === "") {
alert("Destination has not been filled.");
return false;
}
}
答案 1 :(得分:0)
您的表单中存在一些错误,以及您如何调用onsubmit
。此外,您可以在没有javascript的情况下执行此操作(减去警报)
https://jsfiddle.net/stevenkaspar/uoLrsz78/
<form method="get" action="/">
Home Phone:
<input type="text" name="phone" pattern='(02)[0-9]{8}' required/> <br/>
What is your favorite destination to fly to?
<input type="text" name="dest" required/> <br/>
<input type="submit" value="Submit" />
<input type="reset" value="Reset"/>
</form>