2013-03-24 7 views
13

Sto utilizzando un modulo con un menu a discesa che contiene alcune opzioni disabilitate, quindi gli utenti non possono selezionarle. Sto cercando di personalizzare tramite css questi elementi ma ho qualche problema con Chrome e IE7/8/9/10.Come modificare le opzioni disabilitate in un modulo

HTML:

<div class="formBody"> 
    <select name="form[categoria][]" id="categoria" class="rsform-select-box"> 
     <option selected="selected" value="">Scegli una categoria</option> 
     <option disabled="disabled" value="">Impresa </option> 
    </select> 
    <span class="formValidation"> 
     <span id="component50" class="formNoError">Scegli una categoria</span> 
    </span> 
</div> 

CSS:

select option[disabled] { color: #000; font-weight: bold } 

Questo codice funziona solo con Firefox e non funziona con Chrome e IE (tutte le versioni).

Qualche idea per risolvere questo problema?


Di seguito il codice html per selezionare-box

<div class="formBody"><select name="form[categoria][]" id="categoria" class="rsform-select-box" ><option selected="selected" value="">Scegli una categoria</option><option disabled="disabled" value="">Impresa </option><option value="Servizi">Servizi</option><option value="Informatica">Informatica</option><option value="Commercio">Commercio</option><option value="Telecomunicazioni">Telecomunicazioni</option><option value="Editoria/Stampa">Editoria/Stampa</option><option value="Meccanica/Elettrica">Meccanica/Elettrica</option><option value="Alimentare">Alimentare</option><option value="Chimica/Farmaceutica">Chimica/Farmaceutica</option><option disabled="disabled" value="">Edilizia </option><option value="Tessile/Moda">Tessile/Moda</option><option value="Mobili/Arredamenti">Mobili/Arredamenti</option><option value="Alberghi/Ristoranti">Alberghi/Ristoranti</option><option value="Trasporto/Logistica">Trasporto/Logistica</option><option value="Finanza">Finanza</option><option value="Altro">Altro</option><option disabled="disabled" value="">Professionista </option><option value="Commercialista">Commercialista</option><option value="Ragioniere">Ragioniere</option><option value="Notaio">Notaio</option><option value="Tributarista">Tributarista</option><option value="Avvocato">Avvocato</option><option value="Consulente del lavoro">Consulente del lavoro</option><option value="Altro">Altro</option><option disabled="disabled" value="">P.A. Locale </option><option value="Regione">Regione</option><option value="Provincia">Provincia</option><option value="Comune">Comune</option><option value="Comunit&agrave; Montana">Comunit&agrave; Montana</option><option value="ASL">ASL</option><option value="CCIA">CCIA</option><option value="Altro">Altro</option><option disabled="disabled" value="">P.A. Centrale </option><option value="Associazione di categoria">Associazione di categoria</option><option value="Privato">Privato</option><option value="Altro">Altro</option></select><span class="formValidation"><span id="component50" class="formNoError">Scegli una categoria</span></span></div> 
+0

l'aggiunta di una classe .disabled funziona bene – Vortex

+0

http://stackoverflow.com/questions/1867743/can-i-style-a-disabled-control-using-css -o-script copre il problema genericamente, piuttosto che solo le opzioni in un menu a discesa. –

+0

Penso che non puoi cambiare l'elemento "seleziona" in tutti i browser, ma puoi usare degli script che emulano/sostituiscono l'elemento "seleziona". Qualcosa di simile http://www.benplum.com/formstone/selecter –

risposta

3

Non credo che è possibile indirizzare un tag option usando CSS puro; puoi modificare solo un tag select.

Tuttavia, ci sono soluzioni alternative. Vedi this question.

+0

In Firefox il codice funziona bene. Sto cercando di trovare un'opzione alternativa che funzioni con tutti i browser. – user2195922

+0

@ user2195922: puoi pubblicare l'intero codice? – JSW189

+0

Puoi scegliere come target un tag di opzione se è disabilitato o se hai aggiunto una classe. Ho modificato @ JSW189 violino e l'ho aggiornato http://jsfiddle.net/W5B5p/110/ – gecco

25

Quello che stai cercando è questo:

select option:disabled { 
    color: #000; 
    font-weight: bold; 
} 

Here, have a fiddle.

Attenzione: secondo i rapporti sulla sezione commenti, questa soluzione non funziona su OS X.

+9

Non funziona in chrome, firefox o safari. –

+1

Appena testato in Firefox e Chrome e funziona su entrambi. – Cthulhu

+1

In che versioni sei? Stabile Sto visualizzando un comportamento predefinito senza modifiche. –

2
<select> 
    <option value="volvo" >Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="vw" disabled>VW</option> 
    <option value="audi" class="colr">Audi</option> 
    <option value="aaa">Something</option> 
    <option value="ccc">Other</option> 
    <option value="vw" disabled>VW</option> 
    <option value="vvv">Apple</option> 
    <option value="nnn" class="colr">Mango</option> 
    <option value="cmmmcc">Plum</option> 
</select> 

option:disabled { 
    background: #ccc; 
    width: 500px; 
    padding: 5px; 
    } 

option.colr { 
    background: red; 
    width: 500px; 
    padding: 5px; 
    } 

Verificare il collegamento http://jsfiddle.net/W5B5p/110/

-1
var select = document.getElementsByTagName("select"); 

for(var i = 0;i < select.length; i++) 
{ 
var el = select[i]; 
var optVal = el.options[el.selectedIndex].value 
el.addEventListener('change', function() { 
// Using an if statement to check the class 
    if (optVal == "") { 
     el.classList.remove('not_chosen'); 
    } else { 
     el.classList.add('not_chosen'); 
    } 
}); 
} 
+0

Che cosa è esattamente questo? CSS – Dementic

-1
<select class="dropdown" name="contactMethod"> 
<option selected disabled>Contact method:</option> 
<option class="dropdownplus"> E-mail: </option> 
<option class="dropdownplus"> Website </option> 
<option class="dropdownplus"> None</option> 
</select> 

<style> 
.dropdown { 
    background-color: rgba(195, 0, 97, 0.1); 
    width: 100%; 
    border: 1px solid #CC0061; 
    border-style: inset; 
    color: grey; 
    text-decoration: none; 
    display: inline-block; 
    font-size: 16px; 
    padding: 10px; 
    margin-top: 10px; 
    margin-bottom: 10px; 
    } 

option.dropdownplus { 
    color: black; 
} 
</style> 

See img https://ibb.co/d9453b

+1

Benvenuto in Stack Overflow! Grazie per questo snippet di codice, che potrebbe fornire un aiuto limitato a breve termine. Una spiegazione appropriata [migliorerebbe notevolmente] (// meta.stackexchange.com/q/114762) il suo valore a lungo termine mostrando * perché * questa è una buona soluzione al problema e lo renderebbe più utile ai futuri lettori con altre domande simili. Per favore [modifica] la tua risposta per aggiungere qualche spiegazione, incluse le ipotesi che hai fatto. –

Problemi correlati