繁体   English   中英

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

[英]Populating a jquery array from values of a select using each

我试图用从选择中选择的值填充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()});
});

我把整个事情复杂化了。

您无需为“选定的” option遍历option s。 改用这个:

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

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

希望能有所帮助。

看起来您是否有多重选择,因此可以使用.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);
});

暂无
暂无

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

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