Saya memiliki persyaratan yang sangat aneh, di mana saya diharuskan untuk tidak memiliki opsi yang dipilih secara default di menu drop down dalam HTML. Namun,
Saya tidak bisa menggunakan ini,
<select>
<option></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
Karena, untuk ini saya harus melakukan validasi untuk menangani opsi pertama. Adakah yang bisa membantu saya dalam mencapai target ini tanpa benar-benar memasukkan opsi pertama sebagai bagian dari tag pilih?
Jawaban:
Mungkin ini akan sangat membantu
-- select an option --
Akan ditampilkan secara default. Tetapi jika Anda memilih suatu opsi, Anda tidak akan dapat memilihnya kembali.Anda juga dapat menyembunyikannya dengan menambahkan yang kosong
option
<option style="display:none">
jadi itu tidak akan muncul dalam daftar lagi.
pilihan 2
Jika Anda tidak ingin menulis CSS dan mengharapkan perilaku yang sama dari solusi di atas, cukup gunakan:
<option hidden disabled selected value> -- select an option -- </option>
sumber
<option hidden disabled selected value> -- select an option -- </option>
Anda dapat menggunakan Javascript untuk mencapai ini. Coba kode berikut:
HTML
JS
atau JQuery
sumber
required
atribut padaselect
elemen dan mengirimkan tanpa memilih opsi, validasi formulir akan gagal dan memberi tahu Anda, Anda harus membuat pilihan. Karena itu saya sangat suka pendekatan ini. (Setidaknya diuji di Chrome)Hari ini (2015-02-25)
Ini adalah HTML5 yang valid dan mengirimkan blank (bukan spasi) ke server:
Validitas terverifikasi di http://validator.w3.org/check
Perilaku yang diverifikasi dengan Win7 (IE11 IE10 IE9 IE8 FF35 Safari5.1) Ubuntu14.10 (Chrome40, FF35) OSX_Yosemite (Safari8, Chrome40) Android (Samsung-Galaxy-S5)
Berikut ini juga melewati validasi hari ini , tetapi melewati semacam karakter ruang juga server dari sebagian besar browser (mungkin tidak diinginkan) dan kosong pada yang lain (Chrome40 / Linux melewati kosong):
Sebelumnya (2013-08-02)
Menurut catatan saya, entitas non-breaking-space di dalam tag opsi yang ditunjukkan di atas menghasilkan kesalahan berikut pada 2013:
Pada saat itu, ruang reguler adalah XHTML4 yang valid dan mengirim yang kosong (bukan spasi) ke server dari setiap browser:
Masa depan
Ini akan membuat hati saya senang jika spec diperbarui untuk secara eksplisit mengizinkan opsi kosong. Lebih disukai menggunakan sintaks yang paling singkat. Salah satu dari yang berikut ini akan menjadi luar biasa:
File Uji
sumber
Masukkan "tersembunyi" pada opsi yang ingin Anda sembunyikan di daftar dropdown.
sumber
Solusi yang berfungsi hanya dengan menggunakan CSS:
A: CSS sebaris
B: Lembar Gaya CSS
Jika Anda memiliki file CSS, Anda dapat menargetkan yang pertama
option
menggunakan:sumber
Ini akan membantu:
https://www.w3schools.com/tags/att_select_required.asp
sumber
Anda dapat menghindari validasi khusus dalam kasus ini.
sumber
Hanya sebuah komentar kecil:
beberapa peramban Safari tampaknya tidak menghargai atribut "tersembunyi" atau tampilan pengaturan gaya "tidak ada" (diuji dengan Safari 12.1 di bawah MacOS 10.12.6). Tanpa teks placeholder yang eksplisit, browser ini hanya menampilkan baris pertama yang kosong dalam daftar opsi. Karena itu mungkin berguna untuk selalu menyediakan beberapa teks penjelasan untuk entri "dummy" ini:
Berkat atribut "dinonaktifkan", itu tidak akan dipilih secara aktif.
sumber
Saya mengerti apa yang Anda coba lakukan. Cara terbaik dan paling sukses adalah:
sumber
Saya menemukan itu sangat menarik karena saya baru saja mengalami hal yang sama belum lama ini. Namun, saya menemukan contoh di Internet tentang solusi mengenai hal ini.
Tanpa basa-basi lagi, lihat fragmen kode di bawah ini:
Dengan itu, itu akan tetap tidak dapat dikirim tetapi dapat dipilih, kapan saja. Lebih banyak kenyamanan untuk Antarmuka Pengguna dan bagus untuk Pengalaman Pengguna.
Yah itu saja, saya harap ini membantu. Bersulang!
sumber
Tidak ada solusi HTML. Dengan spesifikasi HTML 4.01, perilaku browser tidak terdefinisi jika tidak ada
option
elemen yang memilikiselected
atribut, dan apa yang dilakukan browser dalam praktiknya adalah bahwa mereka membuat opsi pertama yang dipilih sebelumnya.Sebagai solusinya, Anda bisa mengganti
select
elemen dengan serangkaianinput type=radio
elemen (denganname
atribut yang sama ). Ini menciptakan kontrol dari jenis yang sama meskipun dengan tampilan dan antarmuka pengguna yang berbeda. Jika tidak adainput type=radio
elemen yang memilikichecked
atribut, awalnya tidak ada yang dipilih di sebagian besar browser modern.sumber
Saya menggunakan framework Laravel 5 dan jawaban @Gambi bekerja untuk saya juga tetapi dengan beberapa perubahan untuk proyek saya.
Saya memiliki nilai opsi dalam tabel database dan saya menggunakannya dengan pernyataan foreach. Tetapi sebelum pernyataan itu saya telah menambahkan opsi dengan pengaturan yang disarankan @Gambit dan itu berhasil.
Di sini contoh saya:
Saya harap ini membantu seseorang juga. Pertahankan kerja bagus!
sumber
Coba ini:
Opsi pertama di drop down akan kosong.
sumber
Untuk menunjukkan, pilih nilai di tarik turun dan sembunyikan setelah beberapa nilai dipilih. silakan gunakan kode di bawah ini.
itu juga akan mendukung validasi yang diperlukan.
sumber
Jika Anda menggunakan Angular (2+), (atau kerangka kerja lainnya), Anda bisa menambahkan beberapa logika. Logikanya adalah: hanya menampilkan opsi kosong jika pengguna belum memilih yang lain. Jadi setelah pengguna memilih opsi, opsi kosong menghilang.
Untuk Angular (9) ini akan terlihat seperti ini:
sumber
Coba ini:
Validasi dalam HTML5. Bekerja dengan
required
atribut pada elemen pilih. Dapat dipilih kembali. Bekerja di Google Chrome 45, Internet Explorer 11, Edge, Firefox 41.sumber