当前位置: 代码迷 >> JavaScript >> 停止运行javascript函数
  详细解决方案

停止运行javascript函数

热度:11   发布时间:2023-06-05 10:13:24.0

我在表单的第一步中进行了一些验证。

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

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

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

由于您的validate函数返回true或false,因此您可以使用该值来确定函数执行后的处理方式。

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

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

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

...其中isValid获取从validate返回的值

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

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

hideFormOne();
showPartTwo();
return false;

然后在代码的这一部分中更改您的逻辑,以考虑validate的返回值

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

};

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

更改您的validate函数以返回true(如果有效)。

然后:

else {
  if validate('theForm','email') {
    hideFormOne();
    showPartTwo();
  };
  return false;
};
  相关解决方案