1
我根據從php腳本中獲得的json數據填充選擇輸入字段的選項。基於值的json對象中的搜索鍵
這工作正常,但我想顯示一些額外的信息,根據選定的選項。 基本上,我正在尋找一種方式來找到與所選擇的選項去按鍵:
$("#code").html(result[whichkey]["uniquecode"]);
This fiddle希望讓我的問題更多更清晰一點。
任何幫助非常感謝!
我根據從php腳本中獲得的json數據填充選擇輸入字段的選項。基於值的json對象中的搜索鍵
這工作正常,但我想顯示一些額外的信息,根據選定的選項。 基本上,我正在尋找一種方式來找到與所選擇的選項去按鍵:
$("#code").html(result[whichkey]["uniquecode"]);
This fiddle希望讓我的問題更多更清晰一點。
任何幫助非常感謝!
鑑於使用對象的uniquecode
作爲其值創建option
元素,爲什麼您甚至需要再次訪問該對象?您可以檢索所選option
...的value
屬性...?
假設這只是因爲你過於簡單的例子,在陣列中的對象都持有未在option
元素本身持有的其他有用的數據,那麼你可以使用$.grep
由對象的濾鏡陣列選擇uniquecode
,像這樣:
var json = '[{"uniquecode":"b32dez2","name":"John Doe","foo":"bar"},{"uniquecode":"a2df32","name":"Adam Smith","foo":"buzz"}]';
var result = JSON.parse(json);
var $sel = $('#names').change(function() {
var value = this.value;
var obj = $.grep(result, function(e) {
return e.uniquecode == value;
});
$("#code").html(obj[0].uniquecode + '/' + obj[0].foo)
});;
result.forEach(function(obj) {
$('<option value="' + obj.uniquecode + '">' + obj.name + '</option>').appendTo($sel)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="names"></select>
<div id="code"></div>
請注意,我說的foo
屬性的對象,以顯示你如何訪問THOS以外的對象的屬性e直接放置在option
元素上。
另請注意,我簡化了生成option
元素的代碼。如果你打算在你的項目中使用jQuery,那麼你可以在任何地方使用它。
我確實過分簡化了我的問題,數組中的對象包含其他有用的數據,這些數據不在選項元素本身中。你的例子完全符合我的要求。不知道'$ .grep'。非常感謝! – binoculars
剛剛偶然發現了一個新問題。我使用jQuery驗證(https://github.com/jzaefferer/jquery-validation)來驗證表單。有了這個插件,我可以定義一些規則:'規則:{'輸入字段名稱':{required:true,range:[60,120]}'。這隻允許60到120之間的數字。如果'range_upperlimit'和'range_lowerlimit'也是json對象的一部分,我怎麼能根據選擇的選項動態地改變這個範圍? – binoculars
我相信驗證者也會尊重你添加到元素中的屬性來設置它的規則。檢查文檔以獲取更多信息,或隨時爲其開始一個新問題。 –