如何传递复选框的选中值

时间:2013-10-28 11:18:16

标签: javascript jquery

在此fiddle

我有一个按钮添加,点击时将输入数据添加到屏幕截图中给出的新行。组按钮用于创建一组用户编号。假设我想创建一个组朋友包含第1行,第2行和最后一行的移动号码。所以为此我只选择第一行,第二行和最后一行的复选框。然后按组按钮后会创建一个组。组名和组成员(手机号码)应该存储在数据库中。所以我我正在使用ajax。请告诉我如何传递所选行的移动号码。 enter image description here 以下是jquery

var val=0;
$(document).ready(function(){


  $('#btn1').click(function(){
      if($(".span4").val()!="")
      {
  $("#mytable").append('<tr id="mytr'+val+'"></tr>');
  $("#mytr"+val).append('<td class=\"cb\"><input type=\"checkbox\" value=\"yes\" name="mytr'+val+'" checked ></td>');

             $(".span4").each(function () {

             $("#mytr"+val).append("<td >"+$(this).val()+"</td>");

              });
              val++;
      }
      else
      {
          alert("please fill the form completely");
      }
              });
    $('#btn2').click(function(){
        var creat_group=confirm("Do you want to creat a group??");
        if(val>1){
           alert(creat_group);


              }
    });


}); 

什么是群组,我为什么要这样做? 假设我有100条记录,其中一些是 java 员工,有些是 .net 员工,有些是大型机 假设我想只向java员工发送短信,如果我没有组,则在100条记录中 我必须手动检查谁是java employees.So为了避免我想为java创建组1,为.net创建1,为mainframe创建另一个。为了将sms发送给只有java的人我可以选择java组并发送短信

2 个答案:

答案 0 :(得分:0)

试试这个,

var obj={};// add this
$('#btn1').click(function () {
    if ($(".span4").val() != "") {
        $("#mytable").append('<tr id="mytr' + val + '"></tr>');
        $tr=$("#mytr" + val);
        $tr.append('<td class=\"cb\"><input type=\"checkbox\" value=\"yes\" name="mytr' + val + '" checked ></td>');
        $(".span4").each(function () {
            $tr.append("<td >" + $(this).val() + "</td>");
        });
        // add below code
        var arr={};
        name=($tr.find('td:eq(1)').text());
        email=($tr.find('td:eq(2)').text());
        mobile=($tr.find('td:eq(3)').text());
        arr['name']=name;arr['email']=email;arr['mobile']=mobile;
        obj[val]=arr;
        // add upto above line
        val++;
    } else {
        alert("please fill the form completely");
    }
});

同时更新并添加代码

$(document).on('click', '#btn2',function () {
    var creat_group = confirm("Do you want to creat a group??");
    if (creat_group) {
        console.log(obj);
    }        
});

// to get the checked data only
$(document).on('change','#mytable input:checkbox',function () {
    if(!this.checked)
    {
        key=$(this).attr('name').replace('mytr','');
        obj[key]=null;
    }
});

Demo

答案 1 :(得分:0)

正如我的评论中所述,这是我的回答,您需要将其添加到$('#btn2').click()

Working Fiddle

$(document).ready(function () {
    $('#btn2').click(function () {
        var checkedRows = $('#mytable').find("input:checked").parent().parent();
        var total = checkedRows.length;
        var info = [];
        for(i = 0; i < total; i++){
            var row = $(checkedRows[i]).children();
            var tmpInfo = [];
                tmpInfo["name"]= row[1].innerHTML;
                tmpInfo["email"]= row[2].innerHTML;
                tmpInfo["phone"]= row[3].innerHTML;
            info.push(tmpInfo);
        }

        console.log(info);

        $.post('yourpage', info, function(){
            //on success code, can be an alert or anything you want.
        });
    });
});

解释:基本上我们首先找到所有选中的复选框父行并创建一个数组(checkedRows);

然后我们遍历这个数组(它比使用$.each快得多)并将表格单元格1 2和3的内部HTML添加到info数组中。 (td 0是复选框的单元格,所以我们不需要它);

向您的服务器发送信息,它应该是一个包含n个子阵列的阵列(取决于检查的行数),子阵列将保留名称,电子邮件和电话。

相关问题