简体   繁体   English

数据列表上的事件监听器 (html,css.javascript)

[英]Event listener on datalist (html,css.javascript)

I have created this datalist, when someone chooses an option I want there to be an image appearing.我已经创建了这个数据列表,当有人选择一个选项时,我希望出现一个图像。 To be more exact the options are greek islands, so when someone chooses one of the islands a distinctive img of that island should appear.更准确地说,选项是希腊岛屿,因此当有人选择其中一个岛屿时,应该会出现该岛屿的独特图像。 I do not know exactly what js code to use for that event to happen.我不确切知道该事件发生使用什么 js 代码。

<label for="epilogh-proorismou">Επιλέξτε προορισμό:</label>
<input list="epiloges" id="proorismoi" name="proorismoi" />
<datalist id="epiloges">
   <option value="Κρήτη">
   <option value="Σαντορίνη">
   <option value="Χίος">
   <option value="Πάρος">
   <option value="Κέρκυρα">
</datalist>
    

This will do what you're looking for:这将满足您的需求:

 function setImage(value) { var imgs = document.getElementsByTagName("img"); for(var i = 0; i < imgs.length; i++){ imgs[i].style.display = "none"; } document.getElementById(value).style.display = 'block'; }
 img { display: none; }
 <label for="epilogh-proorismou">Επιλέξτε προορισμό:</label> <input list="epiloges" id="proorismoi" onmousedown="this.value='';" onchange="setImage(this.value);" name="proorismoi" /> <datalist id="epiloges"> <option value="Κρήτη"> <option value="Σαντορίνη"> <option value="Χίος"> <option value="Πάρος"> <option value="Κέρκυρα"> </datalist> <img id="Κρήτη" src="" alt="Κρήτη"></img> <img id="Σαντορίνη" src="" alt="Σαντορίνη"></img> <img id="Χίος" src="" alt="Χίος"></img> <img id="Πάρος" src="" alt="Πάρος"></img> <img id="Κέρκυρα" src="" alt="Κέρκυρα"></img>

Try this:尝试这个:

 document.querySelector('input[list="epiloges"]').addEventListener('input', updateImage); function updateImage(event) { const value = event.target.value // Do what you have to do with value console.log(value) }
 <label for="epilogh-proorismou">Επιλέξτε προορισμό:</label> <input list="epiloges" id="proorismoi" name="proorismoi" /> <datalist id="epiloges"> <option value="Κρήτη"> <option value="Σαντορίνη"> <option value="Χίος"> <option value="Πάρος"> <option value="Κέρκυρα"> </datalist>

You can than update or create an image based on the value.您可以根据该值更新或创建图像。 If you require help with that as well comment below.如果您需要帮助,请在下面发表评论。

Here you can add onchange to input and fetch data from it.在这里,您可以将 onchange 添加到输入并从中获取数据。

 function getImages(e) { var val = document.getElementById("browser").value; // here you can add fetch call const id = Math.ceil(Math.random() * 1000); fetch("https://jsonplaceholder.typicode.com/photos/"+id).then((response) => response.json()).then(data => renderImage(data.url)); } function renderImage(url) { const el = document.getElementById("output"); el.innerHTML = `<img src='${url}' width=90 height=90>`; }
 <label for="browser">Choose your browser from the list:</label> <input list="browsers" name="browser" id="browser" onchange="getImages()"> <datalist id="browsers"> <option value="Edge"> <option value="Firefox"> <option value="Chrome"> <option value="Opera"> <option value="Safari"> </datalist> <div id="output"> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM