Javascript 为什么在提交表单之前调用`onclick()`呢?

Javascript 为什么在提交表单之前调用`onclick()`呢?,javascript,forms,jsp,post,onclick,Javascript,Forms,Jsp,Post,Onclick,我有一个表单,它是通过submit按钮提交的。单击它时,它将执行java脚本验证,并在文本框下显示错误字段。因此,如果有错误,控件将返回到同一页。我的问题是,在表单发布之后,我一直看到两个错误字段,我需要删除其中一个,只保留一个 为此,我从submit按钮调用了一个click函数,并试图找出错误div id是否存在如下情况: <input type="image" name="submit" onclick = 'checkErrors()'> 现在,在这里我没有找到警报,一旦我点

我有一个表单,它是通过
submit
按钮提交的。单击它时,它将执行java脚本验证,并在文本框下显示错误字段。因此,如果有错误,控件将返回到同一页。我的问题是,在表单发布之后,我一直看到两个错误字段,我需要删除其中一个,只保留一个

为此,我从submit按钮调用了一个click函数,并试图找出错误div id是否存在如下情况:

<input type="image" name="submit" onclick = 'checkErrors()'>
现在,在这里我没有找到警报,一旦我点击按钮

因此,我删除了if条件,并将其保留为:

 function checkErrors(){
var errorElem1 = document.getElementById('errField1');
var errorElem2 = document.getElementById('errField2');
errorElem2.style.display='none';
}
} 
现在,我在firebug控制台中看到错误:
elem2为null
。这意味着执行
onclick
,然后只执行表单post,因此在onclick之后再也找不到
elem2

本表格以下列方式提交:


现在,在提交表单并在页面上呈现错误字段之后,我可以在这里做些什么来调用onclick?

当表单提交完成后,基本上您可以进行类似页面刷新的操作。所以DOM从一开始就被重建。在提交操作之前初始化的所有javascript变量现在都会重置

做你想做的事很简单。你可以这样做

<input id="mysubmit" type="image" name="submit" onclick = 'checkErrors()'>

您使用图像作为输入类型。输入类型没有图像类型。而不是使用type=“button”。改为在
validate
方法中调用submit form。

事实并非如此,实际上会发生异步ajax验证,如果出现错误,同一页面会在错误字段中加载错误。所以,基本上在表单提交时,同一页面会加载ajax post验证。异步ajax验证?这是什么?它在您提供的代码中的什么位置?问题不在于
ajax验证
。更重要的是,在提交表单并将内容加载到同一页面后,我是否可以调用
onclick
。请参阅我的更新answer@MaVRoSCy让我看看。我会再打给你的。谢谢。这个
img
标签是干什么用的?无论如何,问题是我得到了两个错误文件,我打算在表单发布后避免。因此,您的带有“if”条件的代码是多余的,因为我确实希望在表单提交之后而不是之前得到错误。您的意思是,当DOM加载时,您希望使用
name=“submit”
单击输入?我的意思是,表单提交结束后,只有这样,我才希望调用onclick方法。@我认为使用ajax调用可以更好地处理这种事情。创建ajax调用。单击按钮/图像调用ajax方法。然后在呼叫完成后提交。DoCallError方法。你能给我指一下任何有这样一段代码的互联网资源吗?理解并实现它对我来说是很有用的。reference
onreadystatechange
是一种在响应返回时调用的方法。所以在那里调用error方法调用。
<input id="mysubmit" type="image" name="submit" onclick = 'checkErrors()'>
<body onload="document.getElementById('mysubmit').click(); return false;">
$( document ).ready(function() {
    $('#mysubmit').click();
});