2016-09-23 57 views
0

我有一個JavaScript函數捕獲選擇下拉列表的onChange。只有當用戶使用鼠標從下拉菜單中選擇項目時才能觸發事件,而不是使用鍵盤向上或向下滾動時觸發事件?Javascript onChange只有當使用鼠標

+2

您可以檢查點擊事件。雖然我不確定爲什麼要這樣做,但一些禁用的用戶需要使用鍵盤或其他形式的輸入,而不是鼠標才能這樣做。 –

+0

不會點擊工作? – bjanes

+0

喜歡這個https://jsfiddle.net/ou8z1q47/? –

回答

0
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> 
+0

請使用原生javascript,而不是jquery。問題標籤是關於JavaScript和onchange。 –

+0

嘗試使用下面的代碼:$(document).on('change','.entity',function(){var italCatId = $(this).val(); –

0

檢查該解決方案,它忽略鍵盤選擇,只能使用鼠標

<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> 

選擇呢?這肯定會爲你工作

0

嘗試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>