2010-07-02 132 views
0

我在表单的第一步中发生了一些验证。停止运行javascript函数

当单击下一个按钮时,将运行一个年龄验证,如果它是真的,那么它将运行三个函数。

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'; 
} 

我的问题是,如果电子邮件是无效的,警告弹出,但随后被关闭时,它继续运行在隐藏和显示功能。我需要它只在电子邮件有效时才运行隐藏/显示功能。

+0

的else下面checkAge()函数,是的,如果什么条件的一部分? – pencilCake 2010-07-02 08:27:05

+0

@burak,我留下了那么多,因为它很长,并且与我的问题 @answers不相关,感谢所有伟大的反馈,我将尝试这些! – Zac 2010-07-02 08:40:19

回答

4

由于您的validate函数返回true或false,您可以使用该值来决定该函数执行后要执行的操作。

if(validate('theForm', 'email')) { 
    hideFormOne(); 
    showPartTwo(); 
} 

以上是写

var isValid = validate('theForm', 'email'); 
if(isValid) { 
    hideFormOne(); 
    showPartTwo(); 
} 

...其中isValid获取从validate

+0

同意戴维 – 2010-07-02 08:28:24

+0

我试过这个,如果它失效,它会停止运行的功能。然而,现在没有任何反应,如果它是真的。 – Zac 2010-07-02 08:48:05

+0

我通过在电子邮件验证中创建一个else语句并将hide/show函数移到那里来实现它。 – Zac 2010-07-02 08:54:16

0

检查返回值是否validate()返回false,则返回从假的简洁方式来电功能:

if (!validate('theForm','email')) 
{ 
    return false; 
} 

hideFormOne(); 
showPartTwo(); 
return false; 
0

然后改变你的逻辑在这部分代码考虑到的validate

if (validate('theForm','email')) { 
    hideFormOne(); 
    showPartTwo(); 
} 
return false; 

}的返回值;

如果电子邮件地址有效,您还需要更改validate以返回true

0

更改您的validate函数返回true,如果有效。

则:

else { 
    if validate('theForm','email') { 
    hideFormOne(); 
    showPartTwo(); 
    }; 
    return false; 
};