使用select2 v4 ajax自定义值JSON

时间:2017-02-21 17:50:56

标签: javascript jquery json ajax select2

我想在选择元素时获取除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以找到我需要的信息,但是如果可能的话我想避免这样做。如何以其他方式提取此信息?

0 个答案:

没有答案