1

我有一个通过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正在执行,然后只发生表单发布,因此elem2在 onclick 后永远找不到。

表单提交为:

<form name="IntitalJspPage" method="post" action="Controller" onsubmit="validate(this); return false;">

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

4

2 回答 2

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();
});
于 2013-06-04T13:47:33.780 回答
0

您使用图像作为输入类型。输入类型没有图像类型。而不是使用 type="button"。validate而是在方法中调用提交表单。

于 2013-06-04T13:49:38.247 回答