2010-12-03 16 views
50

Ich möchte eine Dropdown-Liste mit der Auswahl, Option-Tag ... aber wenn es zuerst erscheint, ich möchte es mit Informationen wie "Bitte wählen Sie einen Namen" dann klickt der Benutzer an die Dropdown-Liste und wählt aus der verfügbaren Option ... Ich habe versucht, die "Bitte wählen Sie einen Namen" als Option, aber dann wird der Benutzer in der Lage sein, dies zu wählen ... was ist nicht was ich will. Muss ich Javascript verwenden, um diese Funktion zu haben oder was muss ich tun?HTML-Auswahl Dropdown-Liste

Wenn there'a jquery Weg, dies zu tun, wäre dies sehr hilfreich sein

Antwort

18

Haben <option value="">- Please select a name -</option> als die erste Option und verwenden Sie JavaScript (und Backend-Validierung), um sicherzustellen, dass der Benutzer etwas anderes als einen leeren Wert ausgewählt hat.

+0

dann aber wie ich schon sagte, wird es zeigen „Bitte wählen Sie einen Namen“ in der Liste der Optionen, die – aherlambang

+1

ich verstehen kann gewählt werden. Was möchtest du stattdessen? Eine Schaltfläche, die beim Anklicken durch das Dropdown-Menü ersetzt wird? (Nicht sarkastisch sein ... das wäre eine Option, aber muss für die Zugänglichkeit abbaubar sein.) Wenn Sie nur mit einem Dropdown bleiben wollen, glaube ich nicht, dass es anders als das, was ich erwähnt habe, gibt. – simshaun

0

Machen Sie eine Steuer JavaScript, dass vor der Wange machen geltend, dass die gewählte Option auf Ihre erste Option ist anders

3

Vielleicht kann dies Sie ohne JavaScript http://htmlhelp.com/reference/html40/forms/option.html

Siehe Option DISABLE

+0

Dies ist richtiger als einige Javascript-Hack. Ich glaube, Sie müssen es auswählen und deaktivieren, obwohl. Außerdem können Sie JavaScript verwenden, um das deaktivierte Attribut hinzuzufügen. – Hayden

3

Einfach, lösen helfen nehme ich an. Das Onclick-Attribut funktioniert gut ...

<select onchange="if(this.value == '') this.selectedIndex = 1; "> 
    <option value="">Select an Option</option> 
    <option value="one">Option 1</option> 
    <option value="two">Option 2</option> 
</select> 

Nachdem eine andere Option ausgewählt wurde, wird Option 1 ausgewählt, wenn die erste Option ausgewählt ist. Wenn Sie eine Erklärung über das Javascript wünschen, fragen Sie einfach.

+1

Sie brauchen nicht wirklich JS dafür, nur grundlegende HTML :) –

+0

Er sagte, eine jQuery war in Ordnung, also warum nicht mit clientseitige Validierung gehen. Wenn es sich nicht um vertrauliche Informationen handelt, müssen Sie nicht mit der serverseitigen Validierung fortfahren. Bearbeiten: Sah deinen Beitrag. Du hattest Recht. Sie haben vergessen, dass Sie bestimmte Optionen deaktivieren können. – Yoshiyahu

103

Versuchen Sie folgendes:

<select> 
    <option value="" disabled="disabled" selected="selected">Please select a name</option> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 

Wenn die Seite geladen ist, wird diese Option standardmäßig ausgewählt werden. Sobald jedoch auf das Dropdown-Menü geklickt wird, kann der Benutzer diese Option nicht erneut auswählen.

Hoffe, das hilft.

+0

Dies funktioniert in Chrome, aber nicht in Firefox (FF4). – smci

+0

@smci Zu der Zeit, als ich das gepostet habe, habe ich es in FF getestet und es funktionierte genauso wie beschrieben. Nicht sicher, welche Version ich damals benutzt habe, aber ich habe es gerade in FF 8.0 getestet und es funktioniert immer noch. –

+0

Uhuh. Zumindest funktioniert es nicht mit Mozilla Firefox für Ubuntu canonical 1.0 – smci

0

Dies ist, wie ich dies tun mit JQuery ...

die Jquery-Wasserzeichen-Plugin (http://code.google.com/p/jquery-watermark/) mit

$('#inputId').watermark('Please select a name'); 

klappt wunderbar!!

Es gibt einige gute Dokumentation auf dieser Google-Code-Website.

Hoffe, das hilft!

+0

Dies ist nur kompatibel zu HTML-Eingabe- und Textarea-Elementen! – fnkr

42
<option value="" style="display:none">Choose one provider</option> 

Auf diese Weise kann der Benutzer diese Option nicht sehen, aber es wird in der Auswahlbox angezeigt.

+0

Auf Mac 10.8.5 funktioniert das für mich in Firefox 24.0 und Opera 18.0, aber nicht in Chrome 29.0 oder Safari 6.1.1. –

+1

Um zu testen: http://jsfiddle.net/Lexogram/db8Lp/4/ –

+0

Wow, das ist unglaublich brillant und einfach. Es funktioniert in Chrome unter Windows. Vielen Dank. – Jessica

1

Es tut mir Leid einem alten Post Necro - aber ich fand einen besseren Weg, dies zu tun

Was ich glaube, dieses Plakat wollte, war:

<label for="mydropdown" datalabel="mydropdown">Country:</label>  
<select name="mydropdown"> 
    <option value="United States">United States</option> 
    <option value="Canada">Canada</option> 
    <option value="Mexico">Mexico</option> 
    <option value="Other">Not Listed</option> 
</select> 

ich diese Informationen in einem anderen Beitrag, während gefunden für die gleiche Antwort suchen - Dank

5
<select name="test"> 
    <option hidden="true">Please select a name</option> 
    <option value="Cash">Cash</option> 
    <option value="Draft">Demand Draft No.</option> 
    <option value="Cheque">Cheque No.</option> 
</select> 
9

Dies ist eine alte Post, aber das war für mich

+1

IMO das ist die richtigste Weise, es zu tun, und wahrscheinlich sollte die akzeptierte Antwort sein. Javascript-Lösungen sind nicht notwendig. –

2
<select> 
    <option value="" disabled="disabled" selected="selected">Please select name</option> 
    <option value="Tom">Tom</option> 
    <option value="Marry">Marry</option> 
    <option value="Jane">Jane</option> 
    <option value="Harry">Harry</option> 
</select> 
2

Wenn Sie das gleiche für die jquery-ui selectmenu Steuerung erreichen wollen, dann müssen Sie setzen ‚display: none‘ in den offenen Event-Handler und fügen Sie ‚-Menüs‘ auf den ID-String.

<select id="myid"> 
<option value="" disabled="disabled" selected="selected">Please select  name</option> 
<option value="Tom">Tom</option> 
<option value="Marry">Mary</option> 
<option value="Jane">Jane</option> 
<option value="Harry">Harry</option> 
</select> 

$('select#listsTypeSelect').selectmenu({ 
    change: function(event, data) { 
    alert($(this).val()); 
}, 
open: function(event, ui) { 
    $('ul#myid-menu li:first-child').css('display', 'none'); 
} 
}); 
1
<select> 
    <option value="" disabled selected hidden>Select an Option</option> 
    <option value="one">Option 1</option> 
    <option value="two">Option 2</option> 
</select> 
Verwandte Themen