Pertanyaan yang sangat sederhana saya harap.
Saya memiliki <select>
kotak biasa seperti ini
<select id="select">
<option value="1">this</option>
<option value="2">that</option>
<option value="3">other</option>
</select>
Saya bisa mendapatkan nilai yang dipilih (dengan menggunakan $("#select").val()
) dan nilai tampilan item yang dipilih (dengan menggunakan $("#select :selected").text()
.
Tapi bagaimana saya bisa menyimpan seperti nilai tambahan di <option>
tag? Saya ingin dapat melakukan sesuatu seperti <option value="3.1" value2="3.2">other</option>
dan mendapatkan nilai value2
atributnya (contohnya adalah 3,2).
javascript
jquery
html
jim smith
sumber
sumber
Jawaban:
Markup HTML
<select id="select"> <option value="1" data-foo="dogs">this</option> <option value="2" data-foo="cats">that</option> <option value="3" data-foo="gerbils">other</option> </select>
Kode
// JavaScript using jQuery $(function(){ $('select').change(function(){ var selected = $(this).find('option:selected'); var extra = selected.data('foo'); ... }); }); // Plain old JavaScript var sel = document.getElementById('select'); var selected = sel.options[sel.selectedIndex]; var extra = selected.getAttribute('data-foo');
Lihat ini sebagai contoh kerja menggunakan jQuery di sini: http://jsfiddle.net/GsdCj/1/
Lihat ini sebagai contoh kerja menggunakan JavaScript biasa di sini: http://jsfiddle.net/GsdCj/2/
Dengan menggunakan atribut data dari HTML5 Anda dapat menambahkan data ekstra ke elemen dengan cara yang valid secara sintaksis yang juga mudah diakses dari jQuery.
sumber
selected.getAttribute('data-foo');
Anda bisa menggunakanselected.dataset.foo
Bagi saya, sepertinya Anda ingin membuat atribut baru? Apa kau mau
<option value="2" value2="somethingElse">...
Untuk melakukan ini, Anda bisa melakukannya
$(your selector).attr('value2', 'the value');
Dan kemudian untuk mengambilnya, Anda bisa menggunakan
$(your selector).attr('value2')
Ini tidak akan menjadi kode yang valid, tapi saya rasa itu berhasil.
sumber
Saya membuat dua contoh dari apa yang menurut saya pertanyaan Anda mungkin:
http://jsfiddle.net/grdn4/
Lihat ini untuk menyimpan nilai tambahan. Ini menggunakan atribut data untuk menyimpan nilai lainnya:
http://jsfiddle.net/27qJP/1/
sumber
Markup HTML / JSP:
<form:option data-libelle="${compte.libelleCompte}" data-raison="${compte.libelleSociale}" data-rib="${compte.numeroCompte}" <c:out value="${compte.libelleCompte} *MAD*"/> </form:option>
KODE JQUERY: Acara: perubahan
var $this = $(this); var $selectedOption = $this.find('option:selected'); var libelle = $selectedOption.data('libelle');
Untuk memiliki elemen libelle.val () atau libelle.text ()
sumber
Untuk menyimpan nilai lain dalam pilihan pilihan:
$("#select").append('<option value="4">another</option>')
sumber