Znaleźliśmy na to prosty i przyzwoity sposób. Jest cross-browser, degradowalny i nie psuje postu formularza. Najpierw ustaw krycie pola wyboru na 0.
.select {
opacity : 0;
width: 200px;
height: 15px;
}
<select class='select'>
<option value='foo'>bar</option>
</select>
dzięki temu nadal możesz go kliknąć
Następnie utwórz element div o takich samych wymiarach jak pole wyboru. Element div powinien znajdować się pod polem wyboru jako tło. Aby to osiągnąć, użyj {pozycja: bezwzględna} i z-indeksu.
.div {
width: 200px;
height: 15px;
position: absolute;
z-index: 0;
}
<div class='.div'>{the text of the the current selection updated by javascript}</div>
<select class='select'>
<option value='foo'>bar</option>
</select>
Zaktualizuj innerHTML elementu div za pomocą javascript. Easypeasy z jQuery:
$('.select').click(function(event)) {
$('.div').html($('.select option:selected').val());
}
Otóż to! Po prostu nadaj styl swojemu elementowi div zamiast pola wyboru. Nie testowałem powyższego kodu, więc prawdopodobnie będziesz potrzebować go ulepszyć. Ale miejmy nadzieję, że rozumiesz sedno.
Myślę, że to rozwiązanie jest lepsze niż {-webkit-look: none;}. Przeglądarki powinny co najwyżej dyktować interakcję z elementami formularza, ale na pewno nie sposób ich początkowego wyświetlania na stronie, ponieważ to psuje projekt witryny.