2012-03-14 8 views
0

leftnavigation.jspとheader.jspが存在するマスターページがあります。現在の左側のナビゲーションには、いくつかのWebページ(例:general.jsp、contact.jsp)へのハイパーリンクが含まれています。これらのハイパーリンクをクリックすると、私は一般的なリンクをクリックするとopen.like、それが開かれ、私はcontact.jspのリンクをクリックした場合、連絡先のWebページが開かれます。これらのWebページは、フォームの最後に保存ボタンの検証を持っています。左ナビゲーション検証

ここでは、ユーザーが左側のナビゲーションのリンクをクリックしてウェブページを変更したときに、これらの検証(すべてのWebページに保存ボタンの検証機能があります)を行いたいと考えています。 leftnavigation.jspにはフォーム要素は含まれていません。それはちょうどリンクやscripppletsを含んでいます 任意の提案?

答えて

0

あなたの検証機能を実行し、あなたのナビゲーションリンクのclickイベントをリッスンし:

function listen(event, elem, func) { 
    if (elem.addEventListener) { 
    elem.addEventListener(event, func, false); 
    } else if (elem.attachEvent) { 
    elem.attachEvent('on' + event, func); 
    } 
} 

var links = document.getElementsByTagName('a'); 

listen('click', links, validationFunction); 

あなたが変数に渡している場合は、匿名関数であなたの検証機能をラップ:

listen('click', links, function(param) { validationFunction(param); }); 
+0

......私はvalidationFunctionでフォームを動的に渡しているので、nullエラーが発生しています。検証関数は、コード内のsubmitformFinal(frm)によって命名されています。http://stackoverflow.com/questions/9603734/how-to-set-focus-on-the-last-element-for-which-the-window-pop私が前に投稿したアップアップエラー。 – rcky

+0

私は自分の答えを変更します。 –

0

簡単に聞こえます。クリックすると、ナビゲーションバーのリンクがフォームの検証機能を呼び出させるようにすることができます。

<a href="anotherpage.jsp" onclick="validate(); return true;>Click me!</a>

単なる警告かかわら:おそらくこのような何か、それはこのように検証を保証することは不可能だ、ユーザーが(例えばユーザが戻るボタンをクリックしてください可能性)の検証をバイパスすることができます。これが達成しようとしている場合は、検証関数onpropertychangedまたはonkeyupを実行することを検討してください。そして、いつものようにフォームのバリデーションは(ほとんど)妨げにならないはずです。 alertメッセージを表示しないでください。ユーザーが何か正しいものを入力しないと、本当に気を散らすことがあります。

上記のコードは、フォームの検証ステータスに関係なく、ユーザーがページをどのように変更できるかに注目してください。フォームが検証に失敗した場合、onclick関数はfalseを返すようにすることができますが、これはバイパスすることができ、ユーザーにとっては邪魔になります。

これが本当に必要な場合は、リンクは関係なく動作しますが、小さなメッセージが表示される可能性があります。divという形で、フォームのエントリの1つが間違っていることをユーザーに警告するページの上部に静かにポップアップします。

+0

...... formnames(general.jspまたはcontact.jsp)を、leftnavigation.jspで使用されているときにvalidate関数に動的に渡す方法です。この検証関数がcommon.jsで定義されています。 – rcky

+0

Wait分...あなたは 'フレーム'を使っ​​ていないのですか?そうでなければ、上の擬似コードはナビゲーションバーのリンクに 'onclick'関数を追加する必要があることを示しています。また、あなたの質問にいくつかのコードを表示すると助けになるかもしれません。 –

+0

.....助けてくれてありがとう...妥当性確認関数のパラメータにdocuments.form [0]を渡すことによって、フォーム名を動的に取得しました – rcky

関連する問題