I'm mengalami masalah di Chrome
dengan berikut:
var items = $("option", obj);
items.each(function(){
$(this).click(function(){
// alert("test");
process($(this).html());
return false;
});
});
Klik
acara doesn't tampaknya api di Chrome
, tetapi bekerja di Firefox
.
Saya ingin bisa klik
pada pilihan
elemen dari sebuah combo, jika aku bukan jenis lain dari unsur, katakanlah <li>
itu bekerja dengan baik. Ada ide? Terima kasih.
Kita bisa mencapai hal ini dengan cara lain meskipun langsung menelepon acara <select>
.
JS bagian:
$("#sort").change(function(){
alert('Selected value: ' + $(this).val());
});
Bagian HTML:
<select id="sort">
<option value="1">View All</option>
<option value="2">Ready for Review</option>
<option value="3">Registration Date</option>
<option value="4">Last Modified</option>
<option value="5">Ranking</option>
<option value="6">Reviewed</option>
</select>
Cara mudah untuk mengubah pilih, dan update ini.
// BY id
$('#select_element_selector').val('value').change();
contoh lain:
//By tag
$('[name=selectxD]').val('value').change();
contoh lain:
$("#select_element_selector").val('value').trigger('chosen:updated');
I've telah simmilar masalah. perubahan
hal itu tidak baik untuk saya karena saya've yang dibutuhkan untuk me-refresh beberapa data ketika pengguna mengklik pada pilihan
. Setelah beberapa uji coba i've punya solusi ini:
$('select').on('click',function(ev){
if(ev.offsetY < 0){
//user click on option
}else{
//dropdown is shown
}
});
Saya setuju bahwa ini adalah sangat jelek dan anda harus tetap dengan perubahan
acara di mana anda bisa, tapi ini memecahkan masalah saya.
<select id="myselect">
<option value="0">sometext</option>
<option value="2">Ready for Review</option>
<option value="3">Registration Date</option>
</select>
$('#myselect').change(function() {
if($('#myselect option:selected').val() == 0) {
...
}
else {
...
}
});
Saya menggunakan dua bagian solusi
HTML
<select id="sneaky-select">
<option id="select-item-1">Hello</option>
<option id="select-item-2">World</option>
</select>
JS
$("#select-item-1").click(function () { alert('hello') });
$("#select-item-2").click(function () { alert('world') });
$("#sneaky-select").change(function ()
{
$("#sneaky-select option:selected").click();
});
Mungkin salah satu dari the new versi jquery mendukung acara klik pada pilihan. Ini bekerja untuk saya:
$(document).on("click","select option",function() {
console.log("nice to meet you, console ;-)");
});
UPDATE: mungkin usecase bisa menjadi sebagai berikut: user mengirimkan form html dan nilai-nilai yang dimasukkan ke dalam database. Namun satu atau lebih nilai-nilai yang ditetapkan secara default dan anda bendera ini otomatis entri. Anda juga menunjukkan pengguna bahwa entri yang dihasilkan secara otomatis, tetapi jika ia mengkonfirmasi entri dengan mengklik pada yang sudah dipilih pilihan anda mengubah flag di database. Langka menuntut kasus ini, tapi mungkin...
Mencari ini pada 2018. Acara klik pada option tag, dalam pilih tag, tidak dipecat pada Chrome.
Perubahan acara, dan menangkap opsi yang dipilih:
$(document).delegate("select", "change", function() {
//capture the option
var $target = $("option:selected",$(this));
});
Diketahui bahwa $target dapat menjadi koleksi benda-benda jika pilih tag adalah beberapa.
Saya tahu bahwa potongan kode ini berfungsi untuk mengenali pilihan klik (setidaknya di Chrome dan FF). Selanjutnya, ia bekerja jika unsur itu't ada pada DOM beban. Biasanya saya menggunakan ini ketika saya input bagian input menjadi satu pilih elemen dan saya don't ingin bagian judul diklik.
$(document).on('click', 'option[value="disableme"]', function(){
$('option[value="disableme"]').prop("selected", false);
});
Apa yang biasanya bekerja untuk saya adalah untuk pertama mengubah value dari dropdown, misalnya
$('#selectorForOption').attr('dipilih','dipilih')
dan kemudian memicu perubahan
$('#selectorForOption').berubah()
Dengan cara ini, setiap javascript yang ditransfer ke
Sejak $(ini)
isn't benar lagi dengan ES6 panah fungsi yang don't memiliki sama-sama memiliki ini
dari function() {}
, seharusnya kau't menggunakan $( ini ) jika anda menggunakan ES6 sintaks.
Selain itu menurut pejabat jQuery's mohon bantuannya, ada's cara yang lebih sederhana untuk melakukan itu, apa jawaban atas kata.
Cara terbaik untuk mendapatkan kode html dari opsi yang dipilih adalah dengan menggunakan
$('#yourSelect option:selected').html();
Anda dapat mengganti html()
oleh text()
atau apa pun yang anda inginkan (tapi html()
adalah pertanyaan asli).
Hanya menambahkan event listener perubahan
, dengan jQuery's singkatan metode perubahan ()
, untuk memicu kode anda ketika memilih opsi perubahan.
$ ('#yourSelect' ).change(() => {
process($('#yourSelect option:selected').html());
});
Jika anda hanya ingin tahu nilai dari option:selected
(opsi yang pengguna telah dipilih) anda hanya dapat menggunakan $('#yourSelect').val()