这可能是一个非常简单的解决方案,但我不能为我的生活找到解决这个问题的方法,到目前为止我找不到任何解决方法。
我正在尝试在提交表单“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?
答案 0 :(得分:0)
那么,当您将代码放在头部时,会发生HTML渲染时脚本运行。所以在那段时间里,它会分配不同的内存和功能块。因此,当您再次调用该函数时,由于现有引用,它会为您提供不同的结果并且没有错误。好吧它有点奇怪,但它的工作方式,总是建议把你的JS代码放在页面的底部。
答案 1 :(得分:0)
您可以直接从init方法调用validate方法。
function init() {
var applyForm = document.getElementById("apply");
setJobValue();
validate();
}
答案 2 :(得分:0)
当我们为一个事件分配一个函数时,它会终于触发。 所以在你的情况下,这应该工作
function init() {
var applyForm = document.getElementById("apply");
setJobValue();
applyForm.onsubmit = functionToSave;
}
并在提交按钮onclick事件上调用您的验证方法。