一个onclick中有两个函数-Javascript

Two functions in one onclick - Javascript

本文关键字:两个 函数 -Javascript onclick 一个      更新时间:2023-09-26

我试图同时执行两个函数来验证在线表单。第一个表单运行良好,但第二个表单没有执行。有人能指出我的代码出了什么问题吗?

function both(){
    validation();
    regex();
}
function validation(){
    var valid = true;
    var error = [];
    if (document.check_in.forename.value == ""){
        error.push("First Name");
        valid = false;
    }
    if (document.check_in.surname.value == ""){
        error.push("Surname");
        valid = false;
}
    if (valid == false) {
        alert("Please fill in the following fields:'n" + error.join("'n") + ".");
    }
    return valid;
}
function regex(){
    var fnameRE = /^[a-zA-Z]+$/;
var valid_reg = true; 
    var error_reg = [];
    if (!fnameRE.test(document.check_in.forname.value)) {
        error_reg.push("Please use characters only in First Name field.");
        valid_reg = false;
    }   
    else if (valid_reg == false) {
        alert("Please fill s:'n" + error_reg.join("'n") + ".");
    }
    return valid_reg;
}

和HTML:

<form name="check_in" method="POST" action="form.html" onSubmit="return both()"> 

我想你需要像这样的东西

function both(){
    return (validation() && regex())
}

这样,只有当两个函数都通过了验证时,"both"才会返回true。否则返回false

我不确定,但可能就是这样……您正在调用两个函数,其中都有返回语句,一旦遇到第一个返回语句,代码执行就会结束。您是否尝试在regex()函数中设置警报?你能试着在这里证明我的陈述是对的/错的吗。

您的解决方法:

function both(){
    var valid = validation();
    var regexvalid = regex();
    if(valid && regexvalid)
          return true;
    else
          return false;
}