停止运行javascript函数

时间:2010-07-02 08:22:32

标签: javascript forms

我在表单的第一步中发生了一些验证。

单击下一个按钮时,将运行年龄验证,如果为真,则运行三个函数。

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

我的问题是,如果电子邮件无效,则会弹出警报,但是当它关​​闭时,它会继续运行隐藏和显示功能。如果电子邮件有效,我需要它才能运行隐藏/显示功能。

4 个答案:

答案 0 :(得分:4)

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

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

以上是一种简洁的写作方式

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

...其中isValid获取从validate

返回的值

答案 1 :(得分:0)

检查validate()是否返回false,然后从调用函数返回false:

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

hideFormOne();
showPartTwo();
return false;

答案 2 :(得分:0)

然后在代码的这一部分更改逻辑,以考虑validate

的返回值
if (validate('theForm','email')) {
    hideFormOne();
    showPartTwo();
}
return false;

};

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

答案 3 :(得分:0)

如果有效,请将validate函数更改为true。

然后:

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