2017-11-21 19 views
1

idが 'submitPasscode'のSubmitボタンをクリックするとdivタグ(idが 'passcodeCard') divタグ(IDは 'loginCard')を表示します。onClick機能はWebブラウザの読み込み時のみ動作し、Webブラウザを読み込んだ後は完全には動作しません

クリック後、 'checkPasscode()'が機能しますが、この機能はウェブブラウザを読み込んでいるときにのみ機能します。これは、divタグ(id 'passcodeCard')が非表示にならず、Webブラウザをロードした後にdivタグ(id 'loginCard')が表示されなかったことを意味します。

私はonClick関数がうまく動作するためにこのコードが間違っていることを知りたいと思います。ここで

コードです:

<div id="passcodeCard" class="loginDiv" style="margin-top: 10%;" style="display: inline;"> 
<form id="form" class="form-horizontal" style="padding-top: 5%;"> 
    <div class="group"> 
    <input type="text" id="passcode" name="passcode" placeholder="Enter Passcode"/> 
    <span class="bar"></span> 
    <label>Enter Passcode</label> 
    <button type="submit" class="button buttonBlue" style="margin-top: 5%;" id="submitPasscode" onclick="checkPasscode()">Submit</button> 
    </div> 
</form> 
</div> 

<div id="loginCard" class="loginDiv widgetHeight" style="display: none;"> 
<img class="img-responsive user-logo" src="layouts/v7/resources/Images/hims5.png"> 
     <div> 
     <span class="{if !$ERROR}hide{/if} failureMessage" id="validationMessage">{$MESSAGE}</span> 
     <span class="{if !$MAIL_STATUS}hide{/if} successMessage">{$MESSAGE}</span> 
     </div> 

     <div id="loginFormDiv"> 
     <form class="form-horizontal" method="POST" action="index.php"> 
      <input type="hidden" name="module" value="Users"/> 
      <input type="hidden" name="action" value="Login"/> 
      <div class="group"> 
      <input id="username" type="text" name="username" placeholder="Username" value="admin"> 
      <span class="bar"></span> 
      <label>Username</label> 
     </div> 
     <div class="group"> 
     <input id="password" type="password" name="password" placeholder="Password" value="password"> 
     <span class="bar"></span> 
     <label>Password</label> 
     </div> 
     <div class="group"> 
     <button type="submit" class="button buttonBlue">Sign in</button><br> 
     <a class="forgotPasswordLink" style="color: #15c;">forgot password?</a> 
     </div> 
     </form> 
     </div> 
</div> 
<script> 
function checkPasscode(){ 
     if(document.getElementById("passcode").value == "passcode") 
      { 
       document.getElementById("form").style.display = "none"; 
       document.getElementById("loginCard").style.display = ""; 
      } 
     } 
</script> 
+0

は、あなたはそれが偶数ページの更新後に隠された滞在したいでしたか? – Icewine

+0

はい、ページの更新後も非表示にしておきたいと思います。 –

+0

ハードコードされたパスワード以外のパスワードの認証方法はわかりませんが、== passcodeのチェックの後、booleanセッション変数を作成して$ isLogin = true;次に、あなたが現在ログインしている場合はifステートメントをチェックインし、そうでない場合は隠すことができます。 – Icewine

答えて

0

私は完全にあなたの質問を理解していないが、これは、あなたが望んでいたものです。私はフィールドを必要とするようないくつかの追加機能を追加しました。これが助けた場合は私に知らせてください:

<div id="passcodeCard" class="loginDiv" style="margin-top: 10%;" style="display: inline;"> 
 
<form id="form" class="form-horizontal" style="padding-top: 5%;"> 
 
    <div class="group"> 
 
    <input type="password" id="passcode" name="passcode" placeholder="Enter Passcode" required/> 
 
    <span class="bar"></span> 
 
    <label>Enter Passcode</label> 
 
    <button type="submit" class="button buttonBlue" style="margin-top: 5%;" id="submitPasscode" onclick="checkPasscode()">Submit</button> 
 
    </div> 
 
</form> 
 
</div> 
 

 
<div id="loginCard" class="loginDiv widgetHeight" style="display: none;"> 
 
<img class="img-responsive user-logo" src="layouts/v7/resources/Images/hims5.png"> 
 
     <div> 
 
     <span class="{if !$ERROR}hide{/if} failureMessage" id="validationMessage">{$MESSAGE}</span> 
 
     <span class="{if !$MAIL_STATUS}hide{/if} successMessage">{$MESSAGE}</span> 
 
     </div> 
 

 
     <div id="loginFormDiv"> 
 
     <form class="form-horizontal" method="POST" action="index.php"> 
 
      <input type="hidden" name="module" value="Users"/> 
 
      <input type="hidden" name="action" value="Login"/> 
 
      <div class="group"> 
 
      <input id="username" type="text" name="username" placeholder="Username" value="admin" required> 
 
      <span class="bar"></span> 
 
      <label>Username</label> 
 
     </div> 
 
     <div class="group"> 
 
     <input id="password" type="password" name="password" placeholder="Password" value="password" required> 
 
     <span class="bar"></span> 
 
     <label>Password</label> 
 
     </div> 
 
     <div class="group"> 
 
     <button type="submit" class="button buttonBlue">Sign in</button><br> 
 
     <a class="forgotPasswordLink" style="color: #15c;">forgot password?</a> 
 
     </div> 
 
     </form> 
 
     </div> 
 
</div> 
 
<script> 
 
function checkPasscode(){ 
 

 
     if(document.getElementById("passcode").value == "passcode") 
 
      { 
 
       document.getElementById("form").innerHTML = ""; 
 
       document.getElementById("loginCard").style.display = "block"; 
 
      } 
 
     } 
 
</script>

+0

Tommyさん、ありがとうございます。document.getElementById( "form")、style.display = "none"をdocument.getElementById( "form")に変更するとうまくいきます。innerHTML –

+0

Novice Boy! –

+0

よろしくお願いします –

関連する問題