我有一张通过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
正在执行,然后只发生表单发布,因此在onclick之后永远找不到elem2
。
表格提交为:
<form name="IntitalJspPage" method="post" action="Controller" onsubmit="validate(this); return false;">
现在我可以做什么来在提交表单并在页面上呈现错误字段后调用onclick?
答案 0 :(得分:0)
当表单提交结束时,基本上你就像页面刷新一样。所以DOM从一开始就被重建。您在提交操作之前初始化的任何javascript变量现在都已重置。
做你想做的事很简单。你可以这样做
<input id="mysubmit" type="image" name="submit" onclick = 'checkErrors()'>
方法1(普通javascript):
<body onload="document.getElementById('mysubmit').click(); return false;">
方法2(JQuery):
$( document ).ready(function() {
$('#mysubmit').click();
});
答案 1 :(得分:0)
您使用图像作为输入类型。输入类型没有图像类型。而不是使用type =“button”。改为使用validate
方法调用提交表单。