Сообщение от renatdmit
|
Возникает ли какое-то событие у datalist
|
Насколько я знаю, нет.
Вариант без jquery:
если значение datalist нужно получить только перед отправкой данных, обработку события можно убрать
<input name="filt" list="dl_continents" id="filt" />
<datalist id="dl_continents">
<option data-value = "1" value="EUROPE"/>
<option data-value = "2" value="AMERICA"/>
<option data-value = "3" value="ASIA"/>
<option data-value = "4" value="AFRICA"/>
</datalist>
<input type="button" onclick = "getValue()" value = "test">
<script>
document.getElementById("filt").oninput = function(){
var inp = this.value;
var opt=document.querySelector("#dl_continents option[value='"+inp+"']");
if (opt) alert(opt.dataset.value)
}
function getValue(){
var elem = document.getElementById("filt");
var opt=document.querySelector("#dl_continents option[value='"+elem.value+"']");
if (opt){
alert(opt.dataset.value)
}else{
alert("Err")
}
}
</script>
C select'ом проще (onchange можно убрать):
<select id="dl_continents2">
<option selected value=""></option>
<option value="1">EUROPE</option>
<option value="2">AMERICA</option>
<option value="3">ASIA</option>
<option value="4">AFRICA</option>
</select>
<input type="button" onclick = "getValue2()" value = "test2">
<script>
document.getElementById("dl_continents2").onchange = function(){
alert(this.value)
}
function getValue2(){
alert(document.getElementById("dl_continents2").value)
}
</script>