2016-09-23 6 views
0

Ich habe eine Javascript-Funktion, die OnChange eines ausgewählten Dropdown erfasst. Ist es möglich, ein Ereignis nur auszulösen, wenn der Benutzer den Gegenstand mit der Maus aus dem Dropdown-Menü auswählt, nicht wenn er mit der Tastatur nach oben oder unten scrollt?Javascript onChange nur bei Verwendung der Maus

+2

Sie könnten nach einem Klickereignis suchen. Obwohl ich nicht sicher bin, warum Sie dies tun möchten, müssen einige behinderte Benutzer die Tastatur oder eine andere Form der Eingabe als die Maus verwenden, um dies zu tun. –

+0

wird nicht onclick funktionieren? – bjanes

+0

So https://jsfiddle.net/ou8z1q47/? –

Antwort

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

Bitte benutzen Sie rohe Javascript, nicht jquery. Frage-Tag ist über Javascript und onchange. –

+0

versuchen Sie Folgendes zu verwenden: $ (Dokument) .on ('ändern', '.entity', function() { var selectedCatId = $ (this) .val(); –

0

Check diese Lösung, ignoriert er die Tastaturauswahl, nur so, wie es wählen Sie eine Maus

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

Dies wird auf jeden Fall mit für Sie arbeiten

0

Versuchen this.This in IE funktioniert prima aber nicht in Chrom. Ich weiß nicht, warum? Getestet mit IE-Debugger-Tool (funktioniert gut) und auch VS2015 (IE, Knickpunkt onkeydown) arbeiten arbeiten, aber nicht schlagen Haltepunkt, wenn in Chrome ausgeführt.

<!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> 
Verwandte Themen