如何以onSubmit()形式实现多个javascript函数

如何以onSubmit()形式实现多个javascript函数,javascript,html,Javascript,Html,我有4个js函数:validateDate、ValidateeRoom、validateCardDate和validateCard 现在,在提交表格时,我想执行所有这些。或者,如果第一个对所有人都是正确的,我想执行第二个。我有一些建议,例如: 返回fun1()&&fun2()&&fun3(), 返回fun1();fun2(), 并使包装器功能也。。但是没有成功 更新:我的代码是: 他们的密码有错误吗?到目前为止,每一次尝试都失败了 function validateDate() { var x

我有4个js函数:validateDate、ValidateeRoom、validateCardDate和validateCard

现在,在提交表格时,我想执行所有这些。或者,如果第一个对所有人都是正确的,我想执行第二个。我有一些建议,例如: 返回fun1()&&fun2()&&fun3(), 返回fun1();fun2(), 并使包装器功能也。。但是没有成功

更新:我的代码是: 他们的密码有错误吗?到目前为止,每一次尝试都失败了

function validateDate() {
var x = document.forms["form"]["checkin"].value;
var y = document.forms["form"]["checkout"].value;

if (x == y) {
    alert("checkout date should be different from checkin");
    return false;
}else if(x > y){
  alert("checkout date should be greater");
    return false;
}else{return true;}
}

function validateRoom() {

var a = document.forms["form"]["singleroom"].value;
var b = document.forms["form"]["doubleroom"].value;
var c = document.forms["form"]["tripleroom"].value;
if (a == 0 && b==0 && c==0) {
    alert("Please select atleast one field");
    return false;
}else{return true;}
}


function validateCardDate() {
var month = document.forms["form"]["month"].value;
var year = document.forms["form"]["year"].value;
var today = new Date();


if(year < today.getFullYear()){
  alert("Card is expired");
    return false;
}else if(year == today.getFullYear()){
  if(month <= today.getMonth())
    alert("Card is expired");
      return false;
} else {return true;}
}

function validateCard() {
var cardType = document.forms["card"]["cardType"].value;
var cardNumber = document.forms["card"]["cardNumber"].value;

if(cardType == "visa"){
var cardno = /^(?:4[0-9]{12}(?:[0-9]{3})?)$/;

if(cardNumber.match(cardno))  
    {  
  return true;  
    }  
  else  
    {  
    alert("Not a valid Visa credit card number!");  
    return false;  
    }  
}else if(cardType == "americanexpress"){
var cardno = /^(?:3[47][0-9]{13})$/;

if(cardNumber.match(cardno))  
    {  
  return true;  
    }  
  else  
    {  
    alert("Not a valid Amercican Express credit card number!");  
    return false;  
    }  
}else if(cardType == "mastercard"){
var cardno = /^(?:5[1-5][0-9]{14})$/;

if(cardNumber.match(cardno))  
    {  
  return true;  
    }  
  else  
    {  
    alert("Not a valid mastercard credit card number!");  
    return false;  
    }  
}
else if(cardType == "jcb"){
var cardno = /^(?:(?:2131|1800|35\d{3})\d{11})$/;

if(cardNumber.match(cardno))  
    {  
  return true;  
    }  
  else  
    {  
    alert("Not a valid JCB credit card number!");  
    return false;  
    }  
 }

 }
函数validateDate(){
var x=document.forms[“form”][“checkin”].value;
var y=document.forms[“form”][“checkout”].value;
如果(x==y){
警报(“签出日期应与签入日期不同”);
返回false;
}如果(x>y),则为else{
警报(“结账日期应大于”);
返回false;
}else{return true;}
}
功能验证eRoom(){
var a=document.forms[“form”][“singleroom”].value;
var b=document.forms[“form”][“doubleroom”]。值;
var c=document.forms[“form”][“tripleeRoom”].value;
如果(a==0&&b==0&&c==0){
警报(“请至少选择一个字段”);
返回false;
}else{return true;}
}
函数validateCardDate(){
var month=document.forms[“form”][“month”]值;
var year=document.forms[“form”][“year”]值;
var today=新日期();
如果(年<今天。getFullYear()){
警报(“卡过期”);
返回false;
}else if(year==today.getFullYear()){

如果(月创建一个新函数,其中包含所有这四个函数

例如:

function ParentFunction() {
    validateDate()
    validateRoom()
    validateCardDate()
    validateCard()
}
onSubmit调用
ParentFunction()
。这样,您甚至可以使用参数和决策控件以任意顺序运行这些函数

更新

试试这个:

var validateDate = function () {
    // Statements
    return true // if conditions are what you want
}
var validateRoom = function () {
    // Statements
    return true // if conditions are what you want
}
var validateCardDate = function () {
    // Statements
    return true // if conditions are what you want
}
var validateCard = function () {
    // Statements
    return true // if conditions are what you want
}
function ParentFunction() {
    if (validateDate() == true) {
        if (validateRoom() == true) {
            if (validateCardDate() == true) {
                if (validateCard() == true) {
                    return true
                }
            }
        }
    }
    return false
}
希望有帮助!

试试这个:

var validateDate = function () {
    // Statements
    return true // if conditions are what you want
}
var validateRoom = function () {
    // Statements
    return true // if conditions are what you want
}
var validateCardDate = function () {
    // Statements
    return true // if conditions are what you want
}
var validateCard = function () {
    // Statements
    return true // if conditions are what you want
}
function ParentFunction() {
    if (validateDate() == true) {
        if (validateRoom() == true) {
            if (validateCardDate() == true) {
                if (validateCard() == true) {
                    return true
                }
            }
        }
    }
    return false
}
if(func1()){
if(func2()){
if(func3()){
返回func4()
}否则{
返回false;
}
}否则{
返回错误
}
}否则{
返回错误
}
只需执行以下操作:

function main(){
//functions to exexute.
}
然后做:

onsubmit="main()"
如果要执行第二个,如果第一个为真,则

  • 第一个函数必须返回true

    if(main()){if(//otherfunction){}


请向我们展示您的尝试。到目前为止您尝试了什么?你好,Shushan,欢迎来到so!我想向您推荐一些so文档,这些文档可能有助于您提出更好的问题。例如,您可能对和感兴趣。如果您觉得有用,您仍然可以编辑您的问题。与&&运算符链接是一条可行的途径。以下是问题出在其他地方。您好,欢迎使用StackOverflow。请花一些时间阅读帮助页面,特别是名为和的部分。更重要的是,请阅读。您可能还想了解。它只执行第一个函数,即仅validateDate()将被执行。这是一种非常困难且难以管理的方式。它将产生更多的问题。这是一种非常困难且难以管理的方式。它将产生更多的问题。