2011-12-01 55 views
0
$(document).ready(function() {       
     $('#somebutton').click(function() {     
      $.get('List', function(responseJson) { 
       $.each(responseJson, function(index, item) { 
        var elem=$('<input type="checkbox" id="item" value='+item+'/> ' + item + '<br />'); 
        $('#somediv').append('<input type="checkbox" id="item" value='+item+'/> ' + item + '<br />'); 
       }); 
       $('#somediv').append('<button id="newButton">'+"retrieve"+'</button> <br />'); 
      }); 
     }); 
     $("#newButton").click(function(){  
      var data = { 'checkBoxList[]' : []};  
      var list=$(":input:item:checked");  
      $(list.each(function() {   
       data['checkBoxList[]'].push($(this).val());  
       }));  
      $.get("Data",data,function(responseText){ 
       $('#somediv').text(responseText); 
       }); 
      }); 
    }); 

(我是新来的jQuery) 我想要做的是 调用一个servlet,然后给我复选框如何使功能识别动态创建的元素的ID在jQuery的

的一些列表

选择需要的,然后再次提交到另一个服务器 ,该服务器从复选框 中获取输入以显示基于选择的信息。

正从servlet的复选框的列表工作正常,当我点击该按钮,动态创建一个按钮也 ,它不会做任何事情,我唐诺为什么

+0

你叫什么题?你的代码有问题吗? – Polynomial

+1

查看jQuery 1.7+或['.delgate()'](http://api.jquery.com/delegate/)的[.on()](http://api.jquery.com/on/)对于旧版本。这些将允许您绑定自动识别新元素的事件处理程序。所以当新的按钮被添加时,它的点击处理程序将起作用。 –

回答

0

一件事我可以用一个class因为与您目前的实施,你可能会结束与多个按钮具有相同的ID。

所以你可以做的是:

$(".newButton").live('click', function(){  
     var data = { 'checkBoxList[]' : []};  
     var list=$(":input:item:checked");  
     $(list.each(function() {   
      data['checkBoxList[]'].push($(this).val());  
      }));  //why is this like this * 
     $.get("Data",data,function(responseText){ 
      $('#somediv').text(responseText); 
     }); 
    }); 

而且我不知道你在做什么在这里:

  $(list.each(function() {   
       data['checkBoxList[]'].push($(this).val());  
      }));  //why is this like this * 

只要做到:

  list.each(function() {   
       data['checkBoxList[]'].push($(this).val());  
      });  
+0

我试图获取由以前的函数创建的检查项目,然后发送列表到servlet进一步处理 – cypronmaya

+0

$(“。newButton”)不起作用,$(“#newButton”)工作 – cypronmaya

相关问题