为什么onclick()在表单提交之前被调用?
Why does `onclick()` get called before form submission?
我有一个通过submit
按钮提交的表单。当单击它时,它执行java脚本验证并在文本框下显示错误字段。因此,如果出现错误,控件将返回到同一页面。我的问题是,表单后,我一直看到两个错误字段,我需要删除一个,只保留一个。
为此,我从提交按钮调用点击函数,在那里我试图找出错误div id是否存在如下:
<input type="image" name="submit" onclick = 'checkErrors()'>
现在在checkErrors()
方法中:
function checkErrors(){
var errorElem1 = document.getElementById('errField1');
var errorElem2 = document.getElementById('errField2');
if((errorElem1 != null) && (errorElem2 != null)){
alert("Two error fields.");
errorElem2.style.display='none';
}
}
现在,我在这里找不到警报,一旦我点击按钮。
所以我去掉了if条件,保持为:
function checkErrors(){
var errorElem1 = document.getElementById('errField1');
var errorElem2 = document.getElementById('errField2');
errorElem2.style.display='none';
}
}
现在,我看到firebug控制台错误:elem2 is null
。这意味着onclick
正在被执行,然后只有表单post发生,因此在onclick之后从未找到elem2
。
表单提交为:
<form name="IntitalJspPage" method="post" action="Controller" onsubmit="validate(this); return false;">
现在我该怎么做才能在表单提交后调用onclick,并且错误字段已经呈现在页面上?
您使用图像作为输入类型。输入类型没有图像类型。而不是使用type="button"。在validate
方法中调用submit form
当表单提交结束时,基本上你会有一个页面刷新。因此DOM从一开始就被重新构造。在提交操作之前初始化的任何javascript变量现在都将被重置。
做你想做的事很简单。你可以这样做
<input id="mysubmit" type="image" name="submit" onclick = 'checkErrors()'>
方法1(纯javascript):
<body onload="document.getElementById('mysubmit').click(); return false;">
方法二(JQuery):
$( document ).ready(function() {
$('#mysubmit').click();
});
相关文章:
- angularjs-控制器在表单提交时未调用
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 表单提交没有'调用return false后无法工作
- 表单提交与 AJAX 轮询调用
- AJAX 调用和表单提交之间的延迟
- 未调用表单提交处理程序
- 单击表单提交按钮时调用经典ASP函数
- 在表单提交之前,save()内部的方法调用显示模板的返回
- 即使表单无效,也会调用HTML5表单提交处理程序
- 表单提交前的Ajax调用不起作用
- 表单提交成功后调用/执行JQuery函数
- 在表单提交之前调用函数 JavaScript
- 如何将简单的表单提交转换为 ajax 调用;.
- 服务器仅在表单提交时调用 preventDefault 时返回 500 错误
- 如何在表单提交期间进行 $.get 调用
- 文件上传器表单提交事件调用面板以显示包含文件更新程序我想删除代码重写在 jquery 中使用循环重写所有文件类型
- 由于未知原因,Angular按钮正在调用表单提交按钮
- Return false并不阻止在javascript中调用表单提交
- 关于javascript调用表单提交和恢复按钮
- twitter bootstrap 3-标记帮助程序在通过javascript调用表单提交时不绑定数据