2016-04-29 61 views
1

这可能是一个非常简单的解决方案,但我不能为我的生活制定出如何解决这个问题,而迄今为止我发现的任何东西都没有办法实现。我如何获得一个函数来运行.onsubmit事件?

我试图让功能“验证”为运行时的形式“申请”提交:

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正在工作)并且控制台中没有错误,但是我需要做些什么调整才能调用验证?

+0

对不起,我应该提到提交按钮确实有效(因为它会将值反弹回用户,因为它应该),但它似乎并不首先运行“验证” – ChoiceKarpz

+0

您是否发现任何错误安慰 ? – Rayon

+0

Nah,在控制台中没有错误 – ChoiceKarpz

回答

0

那么,会发生什么情况是,当您将代码放在头部时,脚本将在HTML呈现时运行。所以在那段时间里,它分配了不同的内存和功能块。所以,当你再次调用该函数时,由于现有的引用,它会给你不同的结果并且没有错误。好吧,它有点奇怪,但它的JS工作方式,它总是建议把你的JS代码放在页面的底部。

+0

然后提琴请:) – Aslam

+0

好像你已经得到了答案 – Aslam

0

您可以直接调用init方法的validate方法。

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

他为什么要在初始化验证?在用户与页面交互之前,Init很可能是第一件事。 – DannyThunder

0

当我们为一个事件分配一个函数时,它最终会触发。 所以你的情况,这应该工作

 


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

,并呼吁提交按钮onclick事件的验证方法。

相关问题