Javascript 如何让函数与.onsubmit事件一起运行?

Javascript 如何让函数与.onsubmit事件一起运行?,javascript,html,Javascript,Html,这可能有一个非常简单的解决办法,但我一辈子都无法解决这个问题,到目前为止,我还没有发现任何解决办法 我正在尝试在提交表单“apply”时运行函数“validate”: function init() { var applyForm = document.getElementById("apply"); setJobValue(); applyForm.onsubmit = validate; } 验证如下所示: function validate() { alert("If t

这可能有一个非常简单的解决办法,但我一辈子都无法解决这个问题,到目前为止,我还没有发现任何解决办法

我正在尝试在提交表单“apply”时运行函数“validate”:

function init() {
  var applyForm = document.getElementById("apply");
  setJobValue();
  applyForm.onsubmit = validate;
}
验证如下所示:

function validate() {
  alert("If this alert is up then validate is running");
  var dateOfBirth = document.getElementById("dob").value;
  var state = document.getElementById("state").value;
  var postcode = document.getElementById("postcode").value;
等等


函数“setJobValue”正在运行(因此我知道init正在运行),控制台中没有错误,但是要调用validate,我需要做哪些调整?

好的,当您将代码放在头上时,脚本会在呈现HTML时运行。因此,在这段时间内,它分配不同的内存和功能块。因此,当您再次调用该函数时,它会给出不同的结果,并且不会因为现有引用而出现错误。这有点奇怪,但这是JS的工作方式,我们总是建议您将JS代码放在页面底部。

好吧,当您将代码放在头部时,脚本会在呈现HTML时运行。因此,在这段时间内,它分配不同的内存和功能块。因此,当您再次调用该函数时,它会给出不同的结果,并且不会因为现有引用而出现错误。这有点奇怪,但这是JS的工作方式,建议您将JS代码放在页面底部。

您可以直接从init方法调用validate方法

function init() {
  var applyForm = document.getElementById("apply");
  setJobValue();
  validate();
}

您可以直接从init方法调用validate方法

function init() {
  var applyForm = document.getElementById("apply");
  setJobValue();
  validate();
}

当我们将一个函数分配给一个事件时,它最终会触发。 所以在你的情况下,这应该是可行的



    function init() {
            var applyForm = document.getElementById("apply");
            setJobValue();
            applyForm.onsubmit = functionToSave;
        }

并在单击事件时调用提交按钮上的验证方法。

当我们为事件分配函数时,它将最终触发。 所以在你的情况下,这应该是可行的



    function init() {
            var applyForm = document.getElementById("apply");
            setJobValue();
            applyForm.onsubmit = functionToSave;
        }

并在submit button onclick事件上调用您的验证方法。

对不起,我应该提到submit按钮确实有效(因为它会按其应该的方式将值反弹回给用户),它似乎没有首先运行“验证”您在控制台中发现任何错误吗?不,控制台中没有错误
apply
id的
表单
元素?您可以共享您的标记吗?对不起,我应该提到提交按钮确实可以工作(因为它会像应该的那样将值反弹回给用户),它似乎没有首先运行“验证”您在控制台中发现任何错误吗?不,控制台中没有错误
apply
id的
表单
元素?您可以共享您的标记吗?他为什么要在init上验证?在用户与页面交互之前,Init很可能是发生的第一件事。他为什么要在Init上进行验证?Init很可能是用户与页面交互之前发生的第一件事。然后fiddle please:)然后fiddle please:)