2009-08-23 5 views
3

Gibt es eine Möglichkeit, so dass ein Klick auf ein Auswahlfeld nicht die Liste der Optionen öffnet?Deaktivieren oder ignorieren mousedown auf Auswahlfeld in Firefox

Ich versuchte, false von onmousedown und onclick, versuchte ich Aufruf this.blur() in onfocus, habe ich versucht, die Readonly-Attribut, nichts davon scheint in Firefox arbeiten. Chrome und IE scheinen die "return false" im mousedown handler ernster zu nehmen.

BEARBEITEN: Was ich tun möchte, ist meine eigene Schnittstelle für die Auswahl der Option aus dem Select-Eingang zu implementieren. Durch das Deaktivieren der Option "select" wird die Darstellung geändert und verhindert, dass Ereignisse auf das Steuerelement ausgelöst werden. Wenn Sie auf eine Option beschränken, wird diese Option weiterhin geöffnet, wenn der Benutzer auf das Steuerelement klickt. Dies ist also keine gute Lösung.

Ich denke, ich muss die select entfernen und versuchen, etwas zu erstellen, das aus einem Textfeld und einem Bild aussieht.

-Code (online here):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title>Test searchable select</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#mys").mousedown(function() { 
       console.log("mousedown"); 
       return false; 
      }).focus(function() { 
       console.log("focus"); 
       this.blur(); 
      }); 
     }); 
    </script> 
<body> 
<select style="width: 300px" id="mys" readonly="readonly"> 
    <option>apple</option> 
    <option>banana</option> 
</select> 

</body> 
</html> 
+0

Ja, was Sie versuchen, Eingang zu tun scheint wählen für eine benutzerdefinierte zu nennen. – strager

Antwort

1

Warum es nicht disabled machen?

<select style="width: 300px" id="mys" readonly="readonly" disabled="disabled"> 
    <!-- ... --> 
</select> 
+0

Siehe mein Update, ich muss immer noch in der Lage sein, Ereignisse auf dem Steuerelement zu behandeln. – itsadok

0
<script type="text/javascript"> 
     $(function() { 
      $("#mys").mousedown(function() { 
       $(this).val('1');//will close opened list 
      }) 
     }); 
    </script> 

<select style="width: 300px" id="mys" readonly="readonly"> 
    <option value='1'>apple</option> 
</select> 
+0

Warum wurde das abgelehnt? : o –

+1

Ich habe nicht downvote, aber das funktioniert nicht auf meinem FF 11. http://jsfiddle.net/DSHJ5/ – itsadok

Verwandte Themen