Diberikan sebagai berikut:
<select id="location">
<option value="a" myTag="123">My option</option>
<option value="b" myTag="456">My other option</option>
</select>
<input type="hidden" id="setMyTag" />
<script>
$(function() {
$("#location").change(function(){
var element = $(this);
var myTag = element.attr("myTag");
$('#setMyTag').val(myTag);
});
});
</script>
Itu tidak berfungsi ...
Apa yang harus saya lakukan untuk mendapatkan nilai bidang tersembunyi diperbarui ke nilai myTag ketika pilih diubah. Saya berasumsi saya perlu melakukan sesuatu untuk mendapatkan nilai yang dipilih saat ini ...?
Coba ini:
sumber
Itu karena elemennya adalah "Pilih" dan bukan "Opsi" di mana Anda memiliki tag khusus.
Coba ini:
$("#location option:selected").attr("myTag")
.Semoga ini membantu.
sumber
Coba ini:
Dalam fungsi panggilan balik untuk
change()
,this
merujuk ke pilih, bukan ke opsi yang dipilih.sumber
Misalkan Anda memiliki banyak pilihan. Ini bisa melakukannya:
sumber
Anda cukup dekat:
sumber
Sintaksis yang lebih sederhana jika satu bentuk.
var option = $('option:selected').attr('mytag')
... jika lebih dari satu bentuk.
var option = $('select#myform option:selected').attr('mytag')
sumber
Berikut adalah keseluruhan skrip dengan panggilan AJAX untuk menargetkan satu daftar dalam satu halaman dengan banyak daftar. Tidak satu pun dari hal-hal lain di atas yang berfungsi untuk saya sampai saya menggunakan atribut "id" meskipun nama atribut saya adalah "ItemKey". Dengan menggunakan debugger
Debug Chrome
Saya dapat melihat bahwa opsi yang dipilih memiliki atribut: dengan peta ke "id" dan nilai JQuery.
Inilah File JSON yang akan dibuat ...
Semoga ini bisa membantu, terima kasih semuanya sudah membantu saya sejauh ini.
sumber
Coba Contoh Ini:
sumber
sumber
Anda juga dapat mencoba yang ini juga
data-myTag
sumber
Yang termudah,
sumber