简体   繁体   English

Select2(输入)值作为选择项目后的对象

[英]Select2 (input) value as object after select item

I have a select2 (jQuery plugin) on my code which works normally except for the case when I select an item. 我的代码上有一个select2(jQuery插件),除了我选择项目的情况外,它正常工作。

The value is wrong. 价值是错误的。

Form: 形成:

    <form id="Teste" method="get" action="">
        <input type="hidden" id="e6" name="e6" class="select2" style="width: 600px;" />

        <input type="submit" value="Send" />
    </form>

Input from select2 - hidden (required for remote data) - value: [Object] : select2的输入 - 隐藏(远程数据需要) - 值:[Object]

<input type="hidden" id="e6" name="e6" class="select2 select2-offscreen" style="width: 600px;" tabindex="-1" title="" value="[object Object]">

Javascript used for instance select2: Javascript用于实例select2:

        function formatRes(item) {
            return item.Text;
        }

        function formatSel(item) {
            return item.Value;
        }

        $("#e6").select2({
            placeholder: "Select your supplier",
            minimumInputLength: 0,
            id: function(data){return {id: data.id};},
            allowClear: true,
            ajax: {
                url: "http://localhost:1396/List/_GetDropDownListSupplier",
                dataType: 'jsonp',
                quietMillis: 300,
                data: function (term, page) {
                    return {
                        searchString: term,
                        pageSize: 60,
                        pageIndex: page,
                    };
                },
                results: function (data, page) {
                    return {results: data.results, more: (page * 60) < data.total };
                }
            },
            formatResult: formatRes,
            formatSelection: formatSel,
            dropdownCssClass: "bigdrop",
            escapeMarkup: function (m) { return m; }
        });

Json example returned by ajax to Select2: Json示例由ajax返回给Select2:

{"results":[{"Selected":false,"Text":"Cezar Barbara","Value":"724"},{"Selected":false,"Text":"Cezar Barbara","Value":"765"}],"total":82}

Solved: 解决了:

id: function(data){return data.Value;}

I was returning a object with id and not a directly value. 我正在返回一个id为id的对象而不是直接值。

Thanks to @mgibsonbr from Stackoverflow PT 感谢Stackoverflow PT的@mgibsonbr

You need to use a select element, try this: 你需要使用一个select元素,试试这个:

<form>
    ...
    <select id="someSelect">
        //options
    </select>
    <input type="hidden" name="fromSelect" id="fromSelect" value=""/>
</form>

You have two options here: 你有两个选择:

1.- Get the value direct from select: 1.-从select中直接获取值:

var selected = $('#someSelect').val();

2.- Assign the value to the hidden input and then get its value: 2.-将值分配给隐藏输入,然后获取其值:

$('#someSelect').on('change', function(){
    $('#fromSelect').attr('value', this.value);
});

var selected = $('#fromSelect').val();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM