【问题标题】:Populating a jquery array from values of a select using each使用每个选择的值填充 jquery 数组
【发布时间】:2015-01-23 02:23:04
【问题描述】:

我正在尝试使用从选择中选择的值填充 Jquery 中的数组。

这是我的 jquery(没有 ajax 调用,因为我首先想在调用 ajax 将字段输入到 db 之前创建数组)

$('#add-group-form').submit(function(e) {
    e.preventDefault();
    var contactsArr = [];
    $("select option").each(function(i, val){
        var $val = $(val);
        if($(i).attr('selected', 'selected')){
        contactsArr.push({value: $val.val()});
        }
    });
    console.log(contactsArr);
});

现在老实说,我从不同的来源得到了每个。

不确定我如何检查属性以确保它被选中。

提前感谢您的帮助

**编辑:

好吧,所以我可能忘记检查答案,因为我试图弄清楚它分心了

这就是我的做法(在我的系统中测试并运行)。

var contactsArr = [];
$(".edit-contact-select option:selected").each(function() {
    contactsArr.push({value: $(this).val()});
});

我把整个事情搞得太复杂了。

【问题讨论】:

  • if($(i).attr('selected', 'selected')){ 是问题所在。您不需要将“selected”分配给“selected”属性。您需要确定它是否被“选中”。

标签: javascript jquery select each


【解决方案1】:

您不需要遍历options 来获取“选定”的那个。改用这个:

$('#add-group-form').submit(function(e) {
    e.preventDefault();
    var contactsArr = [];
    $('select').each(function(){
        contactsArr.push({value: $(this).val()});
    });
    console.log(contactsArr);
});

$('select').val()实际上返回了选择输入的SELECTED值。

希望有帮助。

【讨论】:

  • 是的,$('select').each(function(args){}) 参数已关闭(此答案已修复),$(i) 错误,应该是 $(this)(同样,GalV 的答案已修复。
【解决方案2】:

看起来你有多重选择,如果你可以使用 .val() 来获取数组中的选定值

$('#add-group-form').submit(function (e) {
    e.preventDefault();
    var contactsArr = $("select").val();
    console.log(contactsArr);
});

如果你想存储从多个选择元素中选择的值,那么使用.map()like

$('#add-group-form').submit(function (e) {
    e.preventDefault();
    var contactsArr = $("select").map(function (i, val) {
        return $(this).val()
    }).get();
    console.log(contactsArr);
});

【讨论】:

    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2013-05-07
    • 2016-06-26
    • 1970-01-01
    • 2019-03-15
    • 2014-05-24
    相关资源
    最近更新 更多