提交按钮上不引人注目的Javascript

提交按钮上不引人注目的Javascript,javascript,html,Javascript,Html,我试图在提交按钮上编写一个不引人注目的函数,而不使用jQuery之类的工具。我的HTML表单中有以下代码: document.getElementById('help_submit').onclick = function (){ window.alert("You clicked on the Submit Button on the Help Request form."); }; 我尝试在以下HTML按钮上使用: <input type="submit" id="help_

我试图在提交按钮上编写一个不引人注目的函数,而不使用jQuery之类的工具。我的HTML表单中有以下代码:

document.getElementById('help_submit').onclick = function (){
    window.alert("You clicked on the Submit Button on the Help Request form.");
};
我尝试在以下HTML按钮上使用:

<input type="submit" id="help_submit" value="Submit Help Request" />

编码哪里出错了?

似乎在加载DOM之前过早运行Javascript,因此
文档。getElementById('help_submit')
找不到DOM元素,因为它还不在页面中。您可以通过将包含此代码的脚本移动到
标记之前的右侧来修复此问题,这样脚本运行时所有DOM元素都将出现。有关此问题的更多详细信息,请参阅以下答案:

此外,提交处理代码需要阻止提交按钮的默认操作,否则表单仍将提交。但是,如果您不希望表单提交,那么您应该停止使用提交按钮,而使用常规按钮

除了将脚本移动到DOM的末尾之外,我建议您将事件处理代码更改为:

document.getElementById('help_submit').addEventListener('click', function (e) {
    e.preventDefault();
    window.alert("You clicked on the Submit Button on the Help Request form.");
});

工作演示:

似乎在加载DOM之前过早运行Javascript,因此
文档。getElementById('help_submit')
找不到DOM元素,因为它还不在页面中。您可以通过将包含此代码的脚本移动到
标记之前的右侧来修复此问题,这样脚本运行时所有DOM元素都将出现。有关此问题的更多详细信息,请参阅以下答案:

此外,提交处理代码需要阻止提交按钮的默认操作,否则表单仍将提交。但是,如果您不希望表单提交,那么您应该停止使用提交按钮,而使用常规按钮

除了将脚本移动到DOM的末尾之外,我建议您将事件处理代码更改为:

document.getElementById('help_submit').addEventListener('click', function (e) {
    e.preventDefault();
    window.alert("You clicked on the Submit Button on the Help Request form.");
});

工作演示:

我对JavaScript没有经验,但是,在评论和已经给出的答案之后,尝试以下方式更改代码:

  • 删除给定的代码(在接下来的步骤中将以不同的方式使用)

  • 在head元素内的script标记中,尝试创建两个函数,例如初始化和消息:

    function initialization()
    {
        element = document.getElementById('help_submit');
        element.addEventListener( 'click', message, false );
    }
    
    function message()
    {
        window.alert("You clicked on the Submit Button on the Help Request form.");
    }
    
  • 在该脚本标记的末尾,编写以下内容:

    window.addEventListener( "load", initialization, false );
    

  • 我对JavaScript没有经验,但是,根据已经给出的注释和答案,尝试以下方式更改代码:

  • 删除给定的代码(在接下来的步骤中将以不同的方式使用)

  • 在head元素内的script标记中,尝试创建两个函数,例如初始化和消息:

    function initialization()
    {
        element = document.getElementById('help_submit');
        element.addEventListener( 'click', message, false );
    }
    
    function message()
    {
        window.alert("You clicked on the Submit Button on the Help Request form.");
    }
    
  • 在该脚本标记的末尾,编写以下内容:

    window.addEventListener( "load", initialization, false );
    

  • 您很可能在执行JS代码之前没有加载DOM。请参阅,您很可能在执行JS代码之前没有加载DOM。请参阅