1

我正在使用jQuery的自動完成功能,但我在獲取源引用頁面上隱藏輸入值時出現問題。作爲隱藏輸入變量的值的jQuery自動完成的源代碼

這是隱藏的輸入字段:

<input type="hidden" id="array_activities" value="[{ label: 'Football', value: '1' }, { label: 'Tennis', value: '2' }, { label: 'Running', value: '3' }]"> 

這是JavaScript:

$("#search").live("focus", function (event) { 
    $(this).autocomplete({ 
     close: function(event, ui) { area_input(); }, 
     source: $("#array_activities").val() 
    }); 
}); 

但沒有自動完成。

如果我更改源選項的值,以明確是隱藏的輸入值(即

'[{ label: 'Football', value: '1' }, { label: 'Tennis', value: '2' }, { label: 'Running', value: '3' }]'),

它工作正常更換'$("#array_activities").val()'

任何想法?

回答

1

在將其指定爲源之前解析它

source: JSON.parse($("#array_activities").val()) 

由於消息來源預計爲array of objectsnot a string

編輯

JSON字符串,單引號是不是一個有效的語法。所有的屬性都必須用雙引號括起來以表示有效的語法。

所以你的值更改爲這樣的事情

value='[{ "label": "Football", "value": "1" }, 
     { "label": "Tennis", "value": "2" }, { "label": "Running", "value": "3" }]' 

Fiddle

如果您希望您的代碼爲運行,那麼你就可以

var arr = eval($("#array_activities").val()); 

但使用嘗試eval被認爲是不好的做法。

For more Info

+0

我曾經試過,但沒有奏效。這裏是一個JSFiddle:http://jsfiddle.net/dU8jR/。 – Bredcrumbs

+0

@Bredcrumbs ..檢查編輯 –

+0

啊,這很好!非常感謝。 – Bredcrumbs