javascript - 如何使用 javascript 中的复选框获取每个成员的用户 ID (user_id)?

标签 javascript jquery checkbox

我试图使用复选框向多个用户发送电子邮件,但问题是只有列表中的最后一个成员会收到电子邮件,而不是每个人。请帮帮我。
这是带有成员的复选框的代码,包括用于发送的按钮:

<input type="checkbox" id="cb{{$i}}" value="{{$member->user_id}}">
    <label class="col-md-5 boxed" for="cb{{$i}}">
        {{$member->email}}
    </label>

这是提交按钮:

<a data-gid="{{$event_group->eg_id}}"
   data-userid="{{$member->user_id}}"
   data-user-name="{{$member->first_name}}">
<i class="fa fa-plus"></i> Add Friends</a>

这是javascript:

$(".invitation").click(function (event) {
        var user_id = $(this).attr("data-userid");
        var user_fullname = $(this).attr("data-user-name");
        var r = confirm("Send Email Invitation?");
        if (r){
            $.ajax({
                type: "GET",
                url: "{{Extras::getEUserURLPath( Auth::user()->user_id, '/ajax/sendFriendsInvitation')}}",
                data: {
                    user_id: user_id,
                    event_group_id: $("#eg_id").val(),
                    _token : ""
                },
                contentType: "application/json; charset=utf-8",
                dataType: 'json',
                success: function (data) {
                    console.log(data.response);
                    if(data.response == true){
                        alert("Email Invitation Sent!");
                    }
                },
                error: function (data) {
                    console.log('Error:', data);
                }
            });
        }
        event.preventDefault();
    });

最佳答案

试试这个:

$(function(){

$("#click").on("click",function(){
	var users=[];
$("input:checkbox").each(function(){
    var $this = $(this);

    if($this.is(":checked")){
        users.push($this.attr("id"));
    }
});
console.log(users);//pass this array to your send mail part
});

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
1:<input type="checkbox" id="id_1">
2:<input type="checkbox" id="id_2">
3:<input type="checkbox" id="id_3">
4:<input type="checkbox" id="id_4">
5:<input type="checkbox" id="id_5">
<button id="click" >Click</button>

使用数组 map() 的另一种方法要快一些。

$(function(){

$("#click").on("click",function(){
	var users=[];
	users=$("input:checkbox:checked").map(function(){
		 return $(this).attr('id');

        }).get();
console.log(users);//pass this array to your send mail part
});

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="id_1">
<input type="checkbox" id="id_2">
<input type="checkbox" id="id_3">
<input type="checkbox" id="id_4">
<input type="checkbox" id="id_5">
<button id="click" >Click</button>

关于javascript - 如何使用 javascript 中的复选框获取每个成员的用户 ID (user_id)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41156591/

相关文章:

javascript - 循环发布 ajax 结果,直到全部发布

javascript - 在 JavaScript 中更改时下拉列表值为空

javascript - 如何确定div是否具有特定类的特定元素?

javascript - 未捕获的 TypeError Javascript

jquery - 使用 jQuery 动态选中和取消选中复选框 : bug?

javascript - 使整个 div 可点击(调用函数)

javascript - jQuery - 如果元素被隐藏,$(this).width() 将不起作用!

Android 保存复选框首选项

javascript - rails | 2 dom中的复选框不可点击

php - jQuery 自定义模板无法正常工作