如果选中,则从动态创建的复选框中获取值

时间:2011-06-12 13:55:33

标签: javascript jquery

我做了一些复选框以及一个按钮,在提交时调用一个函数,我想获取已经检查过的复选框的所有值。

创建这些复选框的代码是:

for (var loop=0; loop < count; loop++)
{

  var chap  =   document.createElement("input");
  chap.type =   "checkbox";
  chap.value    =   nearby[loop];
  chap.id   =   nearby[loop];

  document.getElementById("mapdisplay").appendChild(chap);
  var nearo = nearby[loop];
  var s     =   document.getElementById("mapdisplay");
  var text  =   document.createTextNode(nearby[loop]);
  s.appendChild(text);
  var br        =   document.createElement('br');
  s.appendChild(br);
}

现在我想检索被检查的值。我正在尝试这个(但没有提供)

function fsearch()
{
    var p       =   x;
    var narr    =   new Array();
    narr=nearby;//a global arr
    var checked_vals = new Array(); 
    $('#mapdisplay input:checkbox:checked').foreach()

             {
              checked_vals.push(this.value);

             }

请建议检索生成值的已检查值id的内容是否为数组形式。我无法使用$("#nearby[0]").val()

2 个答案:

答案 0 :(得分:5)

var checkedCheckBoxesValueArray = $('#mapdisplay input:checkbox:checked').map(
  function(){
    return this.value;
}).get();

答案 1 :(得分:1)

正确的语法是:

$('#mapdisplay input:checkbox:checked').each(function(index) {
    checked_vals.push($(this).val());
});

实时测试案例:http://jsfiddle.net/e6Sr3/