我的返回值不起作用,我需要它们才能工作,所以我可以验证页面。我在函数中有一个函数,因为会编写更多代码,需要进行这种设置。
以下是JavaScript代码:
var postalconfig = /^\D{1}\d{1}\D{1}\-?\d{1}\D{1}\d{1}$/;
function outer(){
function checkpostal(postal_code){
if (postalconfig.test(document.myform.postal_code.value)) {
alert("VALID SSN");
return true;
} else {
alert("INVALID SSN");
return false;
}
}
checkpostal();
}
HTML:
<form name="myform" action="index.php" onSubmit="return outer();" method="post">
Postal Code <input name="postal_code" type="text" />
<input name="Submit" type="submit" value="Submit Form" >
</form>
答案 0 :(得分:7)
将checkpostal();
更改为return checkpostal();
var postalconfig = /^\D{1}\d{1}\D{1}\-?\d{1}\D{1}\d{1}$/;
function outer(){
function checkpostal(postal_code) {
if (postalconfig.test(document.myform.postal_code.value)) {
alert("VALID SSN");
return true;
} else {
alert("INVALID SSN");
return false;
}
}
return checkpostal();
}
答案 1 :(得分:4)
这里的问题是您获得了outer
的返回值,但outer
没有返回任何内容。 return true
(或false
)仅影响当前函数,在本例中为checkpostal
。
您需要outer
返回checkpostal
的返回值:
function outer() {
function checkpostal(postal_code) {
if (postalconfig.test(document.myform.postal_code.value)) {
alert("VALID SSN");
return true;
} else {
alert("INVALID SSN");
return false;
}
}
return checkpostal();
}
答案 2 :(得分:3)
看起来outer()
的结尾应该是
return checkpostal();
而不仅仅是
checkpostal();
对checkpostal()
的调用可能会正确返回,但是onsubmit将无法获得结果,因为outer()
没有返回任何内容。
答案 3 :(得分:1)
您需要将电话号码退回到checkpostal:
function outer(){
function checkpostal(postal_code){
if (postalconfig.test(document.myform.postal_code.value)) {
alert("VALID SSN");
return true;
} else {
alert("INVALID SSN");
return false;
}
}
return checkpostal();
}