簡體   English   中英

JavaScript (eventlistner 什么的)

[英]JavaScript (eventlistner or something)

我有一個簡單的 html,帶有一個輸入框(id=input)和一個按鈕(id=button),按鈕文本為“顯示”。 我已經寫了 JavaScript 來更改顯示以隱藏點擊和基本內容。

最初,不顯示任何按鈕(因為沒有顯示按鈕)。 我想要的是,只要我在輸入框中輸入任何內容,就會顯示顯示按鈕。 如何在 JavaScript 中這樣做?

這是我的 JavaScript:-

let input = document.getElementById('input');
let btn = document.getElementById('button');

btn.addEventListener('click', () => {
    if (btn.innerText === "SHOW") {
        btn.innerText = "HIDE";
        input.type = "text";
    } else {
        btn.innerText = "SHOW";
        input.type = "password";
    } 
})

下面的代碼片段根據輸入中的數據顯示和隱藏按鈕

這也是您正在尋找的事件https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event

 document.querySelector("#pass").addEventListener('input', (event) => { if (document.querySelector("#pass").value.length === 0 ) { document.querySelector("#btn").style.display = 'none'; } else { document.querySelector("#btn").style.display = 'inline-block'; } } );
 #btn { display: none; }
 <input id="pass"> <button id="btn"> Show </button>

下面的代碼應該可以幫助您解決您提出的問題(即它不會自動隱藏按鈕)

 document.querySelector("#pass").addEventListener('input', () => { document.querySelector("#btn").style.display = 'inline-block'; });
 #btn { display: none; }
 <input id="pass"> <button id="btn"> Show </button>

如果我正確理解了您的問題,您應該在輸入字段中添加一個更改事件監聽器。 這樣,當輸入字段發生變化時,您可以決定要做什么。

input.addEventListener("change", function(){
if (input.value !== ""){
   // do something
   } else {
    do something else
   }
} )

下面的代碼片段是你問的工作 model

請盡量避免使用innerTextinnerHTMLon*屬性。

參考:

 let input = document.getElementById('dataEntry') let displayButton = document.getElementById('btn') document.addEventListener('input', () => { if (input.value.length === 0) { displayButton.style.display = 'none'; } else { displayButton.style.display = 'inline-block'; } }) displayButton.addEventListener('click', (event) => { if (event.target.textContent.toLowerCase() === 'hide') { input.type = 'password' event.target.textContent = 'Show' } else { input.type = 'text' event.target.textContent = 'Hide' } })
 .container { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); } #btn { display: none; }
 <div class='container'> <input type='text' id='dataEntry' placeholder='Enter your password' required/> <button id='btn'>Hide</button> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM