Показать сообщение отдельно
  #5 (permalink)  
Старый 09.08.2016, 17:13
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

Сообщение от 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>
Ответить с цитированием