У меня есть функция Javascript, которая захватывает onChange из раскрывающегося списка. Возможно ли запустить событие только в том случае, если пользователь выбирает элемент с помощью мыши в раскрывающемся списке, а не при прокрутке вверх или вниз с помощью клавиатуры?Javascript onChange только при использовании мыши
ответ
Have you tried this :
<html lang="en">
<head>
<meta charset="utf-8">
<title>change demo</title>
<style>
div {
color: red;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<select name="sweets" multiple="multiple">
<option>Chocolate</option>
<option selected="selected">Candy</option>
<option>Taffy</option>
<option selected="selected">Caramel</option>
<option>Fudge</option>
<option>Cookie</option>
</select>
<div></div>
<script>
$("select")
.change(function() {
var str = "";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$("div").text(str);
})
.change();
</script>
</body>
</html>
Trigger the handler
</div>
Используйте javascript, а не jquery. Вопросительный тег о javascript и onchange. –
попытайтесь использовать это: $ (document) .on ('change', '.entity', function() { var selectedCatId = $ (this) .val(); –
проверить это решение, он игнорирует выбор клавиатуры, единственный способ, чтобы выбрать его с помощью мыши
<script type="text/javascript">
function IgnoreAlpha(e)
{
if (!e)
{
e = window.event ;
}
if (e.keyCode >= 65 && e.keyCode <= 90) // A to Z
{
e.returnValue=false;
e.cancel = true;
}
}
</script>
<body>
<p>
<select id="MySelect" name="MySelect" onkeydown="IgnoreAlpha(event);"">
<option selected="selected" value="" />
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</p>
</body>
Это, безусловно, работать для вас
Попробуйте this.This работает отлично в IE но не в хроме. Не знаю, почему? Протестировано с помощью инструмента отладчика IE (отлично работает), а также с помощью VS2015 (IE, нажатие на точку останова onkeydown), но не ударяя точку останова при запуске в chrome.
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script type="text/javascript">
function IgnoreArrow(e)
{
if (e.keyCode == 37 || e.keyCode == 38 || e.keyCode ==39 || e.keyCode ==40)
{
return false;
}
}
function myFun() {
var x = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "You selected: " + x;
}
</script>
</head>
<body>
<p>
<select id="mySelect" name="mySelect" onkeydown="return IgnoreArrow(event);" onchange="myFun()">
<option selected="selected" value="" />
<option value="Dream Theater">Dream Theater</option>
<option value="Metallica">Metallica</option>
<option value="Iron Maiden">Iron Maiden</option>
</select>
</p>
<p id="demo"></p>
</body>
</html>
Вы можете проверить наличие события click. Хотя я не уверен, почему вы захотите это сделать, некоторые отключенные пользователи должны использовать клавиатуру или другую форму ввода, кроме мыши, для этого. –
не будет работать onclick? – bjanes
Нравится это https://jsfiddle.net/ou8z1q47/? –