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

时间:2014-07-24 13:59:32

标签: javascript jquery asp.net-mvc jquery-select2

我的代码上有一个select2(jQuery插件),除了我选择项目的情况外,它正常工作。

价值不对。

形式:

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

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

从select2输入 - 隐藏(远程数据需要) - 值:[对象]

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

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示例由ajax返回到Select2:

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

2 个答案:

答案 0 :(得分:6)

解决:

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

我正在返回一个带有id而不是直接值的对象。

感谢Stackoverflow PT的 @mgibsonbr

答案 1 :(得分:-2)

您需要使用select元素,请尝试以下操作:

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

这里有两个选项:

1.-从select:

直接获取值
var selected = $('#someSelect').val();

2.-将值分配给隐藏输入,然后获取其值:

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

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