上記の最後の行の$ hidden.val()がundefinedを返す理由は何ですか? selected.data [1]に整数値が含まれていることを確認しました。jQueryの.val()関数を理解する助けが必要です
編集#1:コメントあたりいくつかの追加のコンテキスト:(隠された$が非表示の入力フィールドです)
$.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);
});
と...
$.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());
編集#2:詳細詳細...私は、複数のテキストボックスコントロール(それぞれがオートコンプリートを実装している)のフォームにjQueryオートコンプリート拡張を使用しようとしています。各テキストボックスの横にあるフォームには、フォームに選択されたアイテムの値を見つけてdbに保存する必要のあるハンドラ関数にフォームを送信する別個のボタンがあります。私がこれについて考える方法は、選択された値を保持するためにフォーム上に隠しフィールドを含めることでした。
ここで、$ hiddenを設定しますか? –
私はこの質問に答えられるために$ hiddenが正確に何を指していたのかを知る必要があります –
@matt b:私があなたが求めていた "$"を編集したと思います。それは意図的であったのか、間違っていたのか – Tomalak