2011-02-06 10 views
0

ボタンをクリックしたときにdivを非表示にしてリンクをクリックしたときに表示したいのですが、表示されているか隠れているかのように点滅します。どのようにしてページの可視性を変更しようとしても、これは実行されます。top:-1000px;トップへ:0px;または可視性:可視性に隠されている:表示されているか、ディスプレイ ""なし "の属性を使用しています。これらのすべてが、フラッシュのために表示される(表示される場合)か、フラッシュのために消える(隠された場合)ようになります。可視性を調整するとdiv要素が点滅します

divを表示するリンクをクリックするとJS関数が呼び出され、divを再び非表示にするにはdivのフォームを送信するときにJS関数が呼び出されます。

これがどうして起こるのか?関連するかもしれないページ約

いくつかのポイント:

- 一部の要素は} {体用のonLoad中のJavascriptを介して引かれ、この要素、またはこの要素自体を含まないものです。

ヘッド部に呼ばれ、-I'veも直接に関連するdiv要素を以下の表示/非表示機能を入れてみました

以下の機能が含まれている...

<script language="JavaScript" src = "dashboard.js"> 
    </script> 

を - これHTMLコードですが、変更はありません。 divのための

の.css:表示する

div#userRegistration{ 
    text-align: center; 
    width: 100%; 
    height: 150%; 
    position: absolute; 
    background-color: white; 
    z-index: 20; 
    top: -1000px; 
} 

JS機能 - の下あたりに更新:私はdiv要素を取得することができない限り、これは使用されることは決してありません注意してください(非表示にする

function userRegistration(){ 
    document.getElementById("userRegistration").style.top = '0px'; 
    return true; 
} 

JS機能 - 更新:

function validateUserRegistration(){ 
    document.getElementById("userRegistration").style.display = 'none'; 
    return true; 
} 

更新されたHTML(下記の2つの提案につき):

 <div id="userRegistration"> 
      <h3>New User Registration:</h3> 
      <form style="text-align: left;" action="" onsubmit="return validateUserRegistration();"> 
       <table> 
        <tr> 
         <td> 
          Email: 
         </td> 
         <td> 
          <input type="text" name="userName"/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          User Name: 
         </td> 
         <td> 
          <input type="text" name="userName"/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          Password: 
         </td> 
         <td> 
          <input type="password" name="password"/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          Repeat Password: 
         </td> 
         <td> 
          <input type="password" name="repeatPassword"/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          &nbsp;&nbsp; 
         </td> 
         <td> 
          <input type="submit" name="submitRegistration" value="Submit"/> 
         </td> 
        </tr> 
       </table> 
      </form> 
     </div> 

EDIT:ページを再読み込みすると、下の空のhref = ""が "フラッシュ"の原因になります。これを私の注意を引くためのtechtheatreに感謝します。/EDIT

最初にdiv要素を示しHTML(それはページのロード時にすでに表示されている場合のdivを非表示にしようとしたときと同じ派手な-ことをし):

<div id="newUser"> 
    <a href="" onclick="return userRegistration();"> 

    New User? Register here. 

    </a> 
</div> 
+0

onSubmit = "validateUserRegistration()"フォームでは、onSubmit = "return validateUserRegistration (); " – Will

+0

試しましたが、変更はありません。 – etech22

答えて

1

両方の最後にreturn true;を追加ブレース中にあなたの機能の

はEDIT:

一つの他の事...何がフォームを送信するときに発生することになっていますか?あなたはアクションを空白のままにしました。この同じページに戻ると(現在のHTMLと同じです)、ページ全体がリロードされます。これは瞬時に非表示にし、ページがリロードされたときに再び表示されます。ページの再読み込みを行わずにフォームデータを送信しようとする場合は、AJAX呼び出しでこれを実装する必要があります。

+0

ありがとうございますが、変更はありません。 – etech22

+0

あなたは@williamによって提案された変更と組み合わせてそれをしましたか?...彼と私の反応の組み合わせは、このハミングをきれいにするべきです。 – techtheatre

+0

あなたの提案の両方を組み合わせたので、今はIEで動作していますが、FirefoxやG Chromeでは動作していません。これまでの助けてくれてありがとう。 IEとFirefox/Chromeの違いは何ですか? – etech22

関連する問題