Saya sedang mengembangkan formulir, dan menggunakan jQuery UI Autocomplete. Saat pengguna memilih opsi, saya ingin pilihan tersebut muncul dalam rentang yang ditambahkan ke induk<p>
tag . Lalu saya ingin bidangnya kosong daripada diisi dengan pilihan.
Saya memiliki rentang yang tampak baik-baik saja, tetapi saya tidak bisa membersihkan lapangan.
Bagaimana Anda membatalkan tindakan pemilihan default jQuery UI Autocomplete?
Ini kode saya:
var availableTags = ["cheese", "milk", "dairy", "meat", "vegetables", "fruit", "grains"];
$("[id^=item-tag-]").autocomplete({
source: availableTags,
select: function(){
var newTag = $(this).val();
$(this).val("");
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Melakukan $(this).val("");
saja tidak akan berhasil. Yang menjengkelkan adalah bahwa hampir fungsi persisnya berfungsi dengan baik jika saya mengabaikan pelengkapan otomatis, dan hanya mengambil tindakan saat pengguna mengetikkan koma seperti:
$('[id^=item-tag-]').keyup(function(e) {
if(e.keyCode == 188) {
var newTag = $(this).val().slice(0,-1);
$(this).val('');
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Hasil akhir sebenarnya adalah membuat pelengkapan otomatis berfungsi dengan banyak pilihan. Jika ada yang punya saran untuk itu, mereka akan diterima.
sumber
$(this).val('');
).val('')
harus tetap terjadi. Inireturn false;
hanya akan mencegah teks item yang dipilih muncul di kolom input.Alih-alih mengembalikan false, Anda juga bisa menggunakan event.preventDefault ().
sumber
return false diperlukan dalam callback pilih, untuk mengosongkan bidang. tetapi jika Anda ingin mengontrol kembali bidang tersebut, yaitu menetapkan nilainya, Anda harus memanggil fungsi baru untuk keluar dari ui.
Mungkin Anda memiliki nilai prompt seperti:
Tetapkan sebagai nilai elemen. (fokus kami tetapkan ke '').
sumber
Ini bekerja dengan baik untuk saya.
Setelah acara tertentu, saya menggunakan perubahan acara.
Saya seorang pemula!
sumber
sumber
Saya baru saja menyelesaikannya dengan memaksa untuk kehilangan fokus:
sumber