问题描述
我在表单的第一步中进行了一些验证。
单击下一个按钮时,将运行年龄验证,如果为真,则它将运行三个功能。
function checkAge(form)
{
return false;
}
else {
validate('theForm','email');
hideFormOne();
showPartTwo();
return false;
};
而功能是
function validate(form_id,email){
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = document.forms[form_id].elements[email].value;
if(reg.test(address) == false) {
alert('Invalid Email Address');
return false;
}
}
function hideFormOne(container1)
{
document.getElementById('container1').style.display='none';
}
function showPartTwo(container2)
{
document.getElementById('container2').style.display='block';
}
我的问题是,如果电子邮件无效,则会弹出警报,但是当该电子邮件关闭时,它将继续运行隐藏和显示功能。 如果电子邮件有效,我只需要运行隐藏/显示功能。
1楼
David Hedlund
4
已采纳
2010-07-02 08:25:18
由于您的validate
函数返回true或false,因此您可以使用该值来确定函数执行后的处理方式。
if(validate('theForm', 'email')) {
hideFormOne();
showPartTwo();
}
以上是一种简洁的写作方式
var isValid = validate('theForm', 'email');
if(isValid) {
hideFormOne();
showPartTwo();
}
...其中isValid
获取从validate
返回的值
2楼
BoltClock
0
2010-07-02 08:25:42
检查validate()
返回false,然后从调用函数中返回false:
if (!validate('theForm','email'))
{
return false;
}
hideFormOne();
showPartTwo();
return false;
3楼
Tarski
0
2010-07-02 08:27:45
然后在代码的这一部分中更改您的逻辑,以考虑validate
的返回值
if (validate('theForm','email')) {
hideFormOne();
showPartTwo();
}
return false;
};
如果电子邮件地址有效,您还需要更改validate
以返回true
。
4楼
Justin L.
0
2010-07-02 08:27:49
更改您的validate
函数以返回true(如果有效)。
然后:
else {
if validate('theForm','email') {
hideFormOne();
showPartTwo();
};
return false;
};