繁体   English   中英

如何在fcbkcomplete中选择值时获取ID? - jsfiddle补充道

[英]How to get ids when a value is selected in fcbkcomplete? - jsfiddle added

请仔细阅读以下小提琴。 我试图在fcbkcomplete框中获取所选产品的ID,并在文本框中将其显示为逗号分隔值,其中id="interest" 我写了一个函数来实现它,但它没有用。 该函数添加第一个值的id,而不是取多个选择框中添加的其他值的id。

http://jsfiddle.net/balac/xDtrZ/1/

我添加了json.txt 它包含这样的数据

[{"key":"2", "value":"Canon Powershot "},{"key":"3", "value":"Fastrack Bag"},{"key":"4", "value":"Iphone 4 "},{"key":"5", "value":"Levis Jeans"},{"key":"7", "value":"Indig"},{"key":"8", "value":"Dashing Cars"},{"key":"9", "value":"dsdas"},{"key":"10", "value":"fsfs"}]

在上面的json值中,key是我想在文本框中以逗号分隔值显示的id。 value是将在下拉列表中选择的值。

在下拉列表中选择值时,我希望相应的键以逗号分隔值的形式添加到文本框中。

问题是,无论如何,只有第一个选定项的键才会添加到文本框中。

希望具体,并详细说明。 如果有人想要澄清,请问我,我会解释更多。

我想我找到了一个更简单的解决方案。 请记住,由于我在评论中提到的问题,我必须大幅简化您的fcbkcomplete代码以使其正常工作..

$(document).ready(function() {
    $("#select3").fcbkcomplete({
        addontab: true,
        maxitems: 10,
        input_min_size: 0,
        height: 10,
        select_all_text: "select",
        onselect: clicker
    });
});

var clicker = function() {
    var selected = new Array();

    $('option', this).each(function() {
        selected.push($(this).val());
    });

    $('#interest').val(selected.join(', '));
};

在这里看到它。

注意:我必须手动将<option>'s添加到select列表中以使fcbkcomplete实际正常工作。 但是,无论如何,我的逻辑应该适合你。

此外, fcbkcomplete显然动态地将<option>'s id改为opt_vaQDzJU37ArScs818rc8HUwz9gm1wypP所以我不得不使用该值。 如果你没有设置使用id而不是值,那么有一些解决方法。

为了说明我的观点,请修改每个选项的循环,如下所示:

$('option', this).each(function() {
    for (var i = 0; i < this.attributes.length; i++) {
        var pair = this.attributes[i].name + ': '
            + this.attributes[i].value;
        alert(pair);
    }
    selected.push($(this).val());
});

您将看到在fcbkcomplete运行后属性如何结束。

最终编辑

在localhost上设置并使用JSON txt文件后,我终于可以复制您遇到的问题。 问题是,当您使用JSON而不是对<option>进行硬编码时,行为会完全改变。 这是您的工作解决方案:

$(document).ready(function() {
    var clicker = function(e) {
        var selected = new Array();

        // using "this" here was out of context, use #select3
        $('option', $('#select3')).each(function() {
            selected.push(this.value);
        });

        $('#interest').val(selected.join(', '));
    };

    $("#select3").fcbkcomplete({
        json_url: "parseJSON.txt",
        addontab: true,
        maxitems: 10,
        input_min_size: 0,
        height: 10,
        select_all_text: "select",
        onselect: clicker
    }); 
});

下面的链接是在select中获取fcbkcomplete值的示例。 您可以为id执行相同的过程。 https://github.com/emposha/FCBKcomplete/issues/110示例如何使用:

`//auto complete jquery starts here
     $("#box").fcbkcomplete({
                    width: 250,
                    addontab: true,                   
                    maxitems: 1,
                    input_min_size: 0,
                    height: 10,
                    cache: true,
                    filter_case: true,
                    filter_hide: true,
                    filter_selected: true,
                    newel: true,
                    filter_case:false,
                    onselect: function(item)
                    {
                        getting_value_dealer(item._value, item._id);
                    }
                });
    //auto complete jquery ends here
`

暂无
暂无

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

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