【问题标题】:Can I nest functions in JavaScript, and will they be called automatically?我可以在 JavaScript 中嵌套函数吗?它们会被自动调用吗?
【发布时间】:2014-10-06 03:25:29
【问题描述】:

我正在处理一个网络表单,并且有一个关于 Javascript 函数的快速问题。单击提交按钮时,我应该确保填写了所有必填字段,并且在适当的字段中输入了正确类型的信息。我知道这是通过向表单添加一个 onsubmit 事件来完成的:

<form name="myForm" onsubmit=return validateForm()>

但由于我将检查几个不同的东西,我想知道是否可以在 validateForm() 函数中编写多个函数,但在我调用 validateForm() 时让所有这些多个函数运行?

我在想这样的事情:

function validateForm() {
    function checkAge() {
        ----
    }
    function checkPhone() {
        ----
    }
}

如果我要这样做,当我像这样调用 validateForm() 函数时,我的 checkAge() 和 checkPhone() 函数会运行吗?:

onsubmit = return validateForm() 

我知道我可以在单个 validateForm() 函数中使用多个 if 语句来完成同样的事情,但如果可能的话,我的想法似乎更有条理,也更容易。

【问题讨论】:

  • 您可以在函数中声明函数,但除非您添加一些代码来调用它们,否则它们不会运行。
  • 哦,好的,我明白了。谢谢!
  • 您需要在onsubmit 属性周围加上引号:onsubmit="return validateForm()"
  • 谢谢@torazaburo,我想知道为什么它不起作用。添加引号修复它:-)

标签: javascript forms function


【解决方案1】:

您不必在 validateForm 中声明它们就可以调用它们:

function checkAge() {
    //Check
}
function checkPhone() {
    //Check
}
function validateForm() {
    return checkAge() && checkPhone();
}

【讨论】:

  • 啊,好棒。谢谢!
【解决方案2】:

可以在函数中声明函数。 您可能想要的是通过调用 checkAge 和 checkPhone 函数来定义函数 validateForm,而不是在内部声明它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2012-07-08
    • 2023-03-25
    • 1970-01-01
    • 2014-06-30
    • 2016-08-31
    相关资源
    最近更新 更多