我的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;
我还没弄明白如何对脚本执行onload检测,这就是为什么你必须等待脚本加载然后按下按钮才能插入javascript。
感谢您的帮助。
答案 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>