1

submitボタンを介して送信されるフォームがあります。クリックすると、Java スクリプトの検証が実行され、テキスト ボックスの下にエラー フィールドが表示されます。したがって、エラーが発生した場合、コントロールは同じページに戻ります。私の問題は、フォームの投稿後、2 つのエラー フィールドが表示され続け、1 つを削除して 1 つだけを保持する必要があることです。

そのために、送信ボタンからクリック関数を呼び出し、エラー 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が実行され、フォーム ポストのみが発生するため、elem2onclick の後に が検出されることはありません。

フォームは次のように送信されます。

<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 に答える