2016-09-23 15 views
0

選択ドロップダウンのonChangeをキャプチャするJavascript関数があります。ユーザーがキーボードを使用して上下にスクロールするときではなく、マウスを使用してアイテムをドロップダウンから選択したときにのみイベントを発生させることは可能ですか?Javascript onChangeマウスを使用している場合のみ変更

+2

クリックイベントを確認できます。なぜあなたはこれをやりたいのか分からないが、無効化されたユーザーの中には、マウス以外のキーボードや他の入力形式を使用する必要があります。 –

+0

は仕事をonclickしませんか? – 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

jqueryではなく、生のjavascriptを使用してください。質問タグはjavascriptとonchangeについてです。 –

+0

これを使用しようとします。$(document).on( 'change'、 '.entity'、function(){ var selectedCatId = $(this).val(); –

0

チェックこのソリューションは、これは間違いなくあなたのための

0

するTry this.Thisを動作するマウス

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

を使用して、それを選択するための唯一の方法はIEで正常に動作している、キーボードの選択を無視しますクロムには含まれない。理由は分かりませんか?IEデバッガツール(うまく動作しています)を使用してテストし、VS2015(IE、ヒットブレークポイントonkeydown)を使用しても動作しますが、クロムで実行するとブレークポイントには当たらない

<!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> 
関連する問題