Javascript onSubmit没有返回false

时间:2017-02-16 20:31:40

标签: javascript html

我的onsubmit代码有问题。我使用的是第三方公司的计算器,我试图在提交表单时触发一些javascript。警报将触发,但如果我将返回设置为false,则表单仍然会提交。

以下是我在自己的环境中使用的代码行: document.getElementsByTagName("Form")[3].onsubmit = function () { alert('Test'); return false; };

我在这里建了一个复制品: (由于什么原因它不会在代码片段中加载,我将相同的代码复制到我的服务器并且它工作正常,所以这就是它的实际效果。Page



function myFunction() {
  document.getElementsByTagName("Form")[0].onsubmit = function () { alert('Test'); return false; };
}

<button onclick="myFunction()">Wait for script to load then press this button to add the onsubmit, then you can press calculate</button>
<script src="https://calculators.symmetry.com/widget/js/salary.js?key=RHA0Slc2ZjEydjNkR0Y2eTEvOUxpZz09"></script>
&#13;
&#13;
&#13;

我还没弄明白如何对脚本执行onload检测,这就是为什么你必须等待脚本加载然后按下按钮才能插入javascript。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

嗯..在您的解决方案中,您在每次点击按钮时添加一个新的事件处理程序

而不是在页面加载时声明事件处理程序然后触发它

应该是......

<script>
    function onMyPageLoaded()
    {
         document.getElementsByTagName("Form")[0].onsubmit = function (e) 
         { 
              e.preventDefault();

              // place your code here

              return false; // cancel form submit
         };
    }

    function doSomething() // use this ONLY if you intend to by-pass the native submit mechanism
    {
      document.getElementsByTagName("Form")[0].submit(); // trigger the event here
    }
</script>

<body onload="onMyPageLoaded()">
    <form>
        <button type="submit">send</button>
    </form>
</body>