我想在选择元素时获取除id或text之外的数据。当用户输入某些值时,将从某些源检索数据。所有数据获取和填充都可以正常工作。以前只是为了让它工作,我刚刚将“自定义”值与一些分隔符连接到id然后解析出来,但是对于我想要做的规范,我不能再这样做了。这基本上是我到目前为止的代码:
JS:
function convertResult(result) {
return {
id: result.p0,
text: result.p1,
custom: result.p2
};
}
searchBox.select2({
width: '100%',
minimumInputLength: 3,
placeholder: 'Search',
ajax: {
url: {someUrl},
delay: 350,
dataType: 'json',
data: function data(params) {
return { q: params.term }
},
processResults: function processResults(data) {
return { results: $.map(data.results, convertResult); }
}
}
});
searchBox.on("change", function (e) {
var selVal = $(this).val(); //this gets me the id
var selText = $(this).text(); //this gets me the text
// grab the "custom" property from the selected element
}
(CS)HTML:
<div class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label> Dropdown </label>
<div class="col-sm-10">
<select data-url='@Url.Action("get")' class="form-control ">
<option value="" selected="selected"> </option>
</select>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> Readonly Textfield</label>
<div class="col-sm-10">
<input type="text" class="form-control custom" style="width: 100%;" readonly="readonly">
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<button type="submit" class="btn btn-primary">
Submit
</button>
</div>
</div>
</div>
所以我想要做的是从select2下拉列表中选择一个元素后,使用custom中保存的值填充只读文本字段。当我查看浏览器的开发人员窗口时,我似乎无法在页面上找到该值。但是在调试时,我可以看到具有自定义值的Json对象。我已经考虑过扫描JSON以找到我需要的信息,但是如果可能的话我想避免这样做。如何以其他方式提取此信息?