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>
'表示:実際にNONE' **削除** JavaScriptはもはや持っていないことを意味DOMからの要素、それにアクセスする。あなたのフィールドがあなたが削除しようとしているDIVの中にあることを考慮すると、あなたが達成しようとしているものは不可能です。それが役立つならば、あなたは 'visibility:hidden'で望みの結果を達成することができます。 –
@ObsidianAgeあなたは間違っています。 'display:none'を設定してもそれがDOMから削除されるわけではなく、単純にCSSの' display'プロパティを 'none'に設定します。 –