2017-11-13 9 views
0

loginDivの表示がnoneの場合、ログインするために一部のinputフィールドをリセットしようとしていますが、全く動作しません。JavaScript Reset with Condition

希望の結果:loginDivが表示されていない限りログインボタンをクリックすると、2つの入力フィールドがリセットされます。ここで

私のコードです:

// LOGIN 
 
const logDiv = document.getElementById('loginDiv'); 
 
const wrong = document.getElementById('wrong'); 
 
const user = document.getElementById('user'); 
 
const pass = document.getElementById('pass'); 
 
const log = document.getElementById('logBtn'); 
 

 
log.addEventListener('click',() => { 
 
    if (user.value == 'f' && pass.value == 'f') { 
 
    logDiv.style.display = 'none'; 
 
    wrong.style.display = 'none'; 
 
    } else { 
 
    wrong.style.display = 'block'; 
 
    } 
 
}); 
 

 
// LOGOUT 
 

 
const logout = document.getElementById('logout'); 
 

 
logout.addEventListener('click',() => { 
 
    if (logDiv.style.display == 'none') { 
 
    logDiv.style.display = 'block'; 
 
    } 
 
}); 
 

 
function resetForm() { 
 
    if (logDiv.style.display == 'none') { 
 
    user.reset(); 
 
    pass.reset(); 
 
    } 
 
}
<div id="loginDiv"> 
 
    <input id="user" type="text" placeholder="username"></input> 
 
    <input id="pass" type="password" placeholder="password"></input> 
 
    <button id="logBtn" onclick="resetForm()">login</button> 
 
</div> 
 
<div id="wrong" style="display: none;"> 
 
    <p id="wrongText">incorrect login info.</p> 
 
</div> 
 

 
<div id="logoutDiv"> 
 
    <button id="logout" type="button">logout</button> 
 
</div>

+1

'表示:実際にNONE' **削除** JavaScriptはもはや持っていないことを意味DOMからの要素、それにアクセスする。あなたのフィールドがあなたが削除しようとしているDIVの中にあることを考慮すると、あなたが達成しようとしているものは不可能です。それが役立つならば、あなたは 'visibility:hidden'で望みの結果を達成することができます。 –

+3

@ObsidianAgeあなたは間違っています。 'display:none'を設定してもそれがDOMから削除されるわけではなく、単純にCSSの' display'プロパティを 'none'に設定します。 –

答えて

1

ユーザー名とパスワードが確認された後、あなたは空の文字列にユーザー名とパスワードのテキストボックスの値を設定することができます。

user.value = ""; 
pass.value = ""; 

// LOGIN 
 
const logDiv = document.getElementById('loginDiv'); 
 
const wrong = document.getElementById('wrong'); 
 
const user = document.getElementById('user'); 
 
const pass = document.getElementById('pass'); 
 
const log = document.getElementById('logBtn'); 
 

 
log.addEventListener('click',() => { 
 
    if (user.value == 'f' && pass.value == 'f') { 
 
    user.value = ""; 
 
    pass.value = ""; 
 
    logDiv.style.display = 'none'; 
 
    wrong.style.display = 'none'; 
 
    } else { 
 
    wrong.style.display = 'block'; 
 
    } 
 
}); 
 

 
// LOGOUT 
 

 
const logout = document.getElementById('logout'); 
 

 
logout.addEventListener('click',() => { 
 
    if (logDiv.style.display == 'none') { 
 
    logDiv.style.display = 'block'; 
 
    } 
 
}); 
 

 
function resetForm() { 
 
    if (logDiv.style.display == 'none') { 
 
    user.reset(); 
 
    pass.reset(); 
 
    } 
 
}
<div id="loginDiv"> 
 
    <input id="user" type="text" placeholder="username"></input> 
 
    <input id="pass" type="password" placeholder="password"></input> 
 
    <button id="logBtn" onclick="resetForm()">login</button> 
 
</div> 
 
<div id="wrong" style="display: none;"> 
 
    <p id="wrongText">incorrect login info.</p> 
 
</div> 
 

 
<div id="logoutDiv"> 
 
    <button id="logout" type="button">logout</button> 
 
</div>

+0

いくつかの説明を追加する必要があります。答えとしてコードを投稿するだけではありません。 – csmckelvey

+0

最も簡単な方法です。私は考え過ぎたと思う。 – hannacreed

0

このボタンが表示されていない場合は前年比では、ボタンのクリックしてログインするcan'n、あなた 入力trougth次のコードでデータをリセットすることができます

function resetForm() { 
    user.value=''; 
    pass.value=''; 
} 

私は最も良い方法はresetFormを使用していると思う。

logDiv.style.display = 'none'; 
    wrong.style.display = 'none'; 
    resetForm(); 

あなたのコードには多くの場所があるため、onclickを使用するのは良い方法ではありません。

例えば

全コード: HTML:

<div id="loginDiv"> 
     <input id="user" type="text" placeholder="username"> 
     <input id="pass" type="password" placeholder="password"> 
     <button id="logBtn">login</button> 
    </div> 
    <div id="wrong" style="display: none;"> 
     <p id="wrongText">incorrect login info.</p> 
    </div> 

    <div id="logoutDiv"> 
     <button id="logout" type="button">logout</button> 
    </div> 

JS:

//LOGIN 
     const logDiv = document.getElementById('loginDiv'); 
     const wrong = document.getElementById('wrong'); 
     const user = document.getElementById('user'); 
     const pass = document.getElementById('pass'); 
     const log = document.getElementById('logBtn'); 

     log.addEventListener('click',() => { 
     if (user.value == 'f' && pass.value == 'f') { 
      logDiv.style.display = 'none'; 
      wrong.style.display = 'none'; 
      resetForm(); 
     } else { 
      wrong.style.display = 'block'; 
     } 
     }); 

     // LOGOUT 

     const logout = document.getElementById('logout'); 

     logout.addEventListener('click',() => { 
     if (logDiv.style.display == 'none') { 
      logDiv.style.display = 'block'; 
     } 
     }); 

     function resetForm() { 

     user.value = ''; 
     pass.value = ''; 
     }