使用每个选择的值填充 jquery 数组

Populating a jquery array from values of a select using each

本文关键字:填充 jquery 数组 选择      更新时间:2023-09-26

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

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

$('#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()});
});

我把整个事情复杂化了。

您不需要循环访问option s 以获得"选定"的 s。 请改用这个:

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

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

希望有帮助。

看起来你有一个多选,所以你可以使用 .val() 来获取数组中的选定值

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

如果要存储来自多个选择元素的选定值,请使用 .map()

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