alert("data going into $hidden: " + selected.data[1]);
hidden.val(selected.data[1]);
alert("data now in $hidden: " + $hidden.val());
Yukarıdaki son satırdaki $ hidden.val() öğesinin tanımsız olarak dönmesinin bir nedeni ne olurdu? Selected.data [1] 'nın bir tamsayı değeri içerdiğini doğruladım.jQuery .val() işlevinin anlaşılması konusunda yardıma mı ihtiyacınız var?
Düzenleme # 1: Yorumlar başı bazı ek bağlam:
$.fn.extend({
autocomplete: function(urlOrData, hidden, options) {
var isUrl = typeof urlOrData == "string";
var $hidden = $(hidden);
options = $.extend({}, $.Autocompleter.defaults, {
url: isUrl ? urlOrData : null,
data: isUrl ? null : urlOrData,
delay: isUrl ? $.Autocompleter.defaults.delay : 10,
max: options && !options.scroll ? 10 : 150
}, options);
// if highlight is set to false, replace it with a do-nothing function
options.highlight = options.highlight || function(value) { return value; };
// if the formatMatch option is not specified, then use formatItem for backwards compatibility
options.formatMatch = options.formatMatch || options.formatItem;
return this.each(function() {
new $.Autocompleter(this, options, $hidden);
});
ve ...
$.Autocompleter = function(input, options, $hidden) {
//...
function selectCurrent() {
var selected = select.selected();
if (!selected)
return false;
var v = selected.result;
previousValue = v;
if (options.multiple) {
var words = trimWords($input.val());
if (words.length > 1) {
v = words.slice(0, words.length - 1).join(options.multipleSeparator) + options.multipleSeparator + v;
}
v += options.multipleSeparator;
}
alert("data going into $hidden: " + selected.data[1]);
$hidden.val(selected.data[1]);
alert("data now in $hidden: " + $hidden.val());
Düzenleme 2. ($ gizlenmiş gizli bir giriş alanıdır): Daha details .... JQuery otomatik tamamlama uzantısını, birden çok metin kutusu denetimli bir formda kullanmaya çalışıyorum (her biri otomatik tamamlamayı gerçekleştirir). Her metin kutusunun yanında, seçilen öğenin değerini bulmak ve db'ye kaydetmek için gereken bir işleyici işlevine formu gönderen ayrı bir düğme vardır. Bunun hakkında düşündüğüm yol, seçilen değeri saklamak için formda gizli bir alan eklemekti.
Nerede $ gizli ayarlarsınız? –
$ Gizli bu soruya cevap vermek için tam olarak ne atıfta bulunduğunu bilmemiz gerekir –
@matt b: Sorduğun "$" yi düzenlediğinize inanıyorum. Bu amaç ya da tesadüfen miydi? – Tomalak