2017-10-09 91 views
-1

我有一个脚本,我尝试将一个复选框的值传递给ajax,不知何故无法执行。 对于用户,名称将显示,而我使用以下来获取用户选择名称的ID列表。用ajax发送复选框数据到java servlet

<script> 
    var finalidlist = ''; 
     var checkboxes = $('.selectone'); 
     for (i = 0; i < checkboxes.length; i++) { 
      if (checkboxes[i].checked === true) { 
       if (finalidlist.length > 0) { 
        finalidlist += ','; 
       } 
       finalidlist += checkboxes[i].name; 
      } 
     } 

    $('#selectall').click(function() { 
     var checkboxes = $('.selectone'); 
     for (i = 0; i < checkboxes.length; i++) { 
      checkboxes[i].checked = this.checked; 
     } 
    }); 
    $('.selectone').click(function() { 
    }); 
</script> 

之后,我尝试将值传递给Ajax时用户提交

<script> 
$(function() { 
    $('#submit_button').click(function() { $.ajax({ 
       url: 'submit.jsp', 
       type: 'post', 
       dataType: 'html', 
       async: false, 
       data: {ids: finalidlist} 
    } 
    }; 
} 

</script> 

虽然我不能够得到阿贾克斯内部检查的ID列表。我对jsp很新,任何人都可以帮忙吗?

+0

可能是你的Ajax是一个脚本,你finalidlist是另一个脚本 –

+0

请问这个问题有什么关系张贴到java吗?您只是解决了JavaScript没有获得所需值的问题。您提到的问题与实际文章没有关系。 – Nope

+0

您的最终列表不会更新复选框更改 – davidchoo12

回答

1

我移动了你的脚本来初始化clickid处理器中的finalidlist。这样,每次更改复选框时都不需要更新列表。

$(function() { 
    $('#submit_button').click(function() { 
     var finalidlist = ''; 
     for (i = 0; i < checkboxes.length; i++) { 
      if (checkboxes[i].checked === true) { 
       if (finalidlist.length > 0) { 
        finalidlist += ','; 
       } 
       finalidlist += checkboxes[i].name; 
      } 
     } 
     $.ajax({ 
      url: 'submit.jsp', 
      type: 'post', 
      dataType: 'html', 
      async: false, 
      data: {ids: finalidlist} 
     } 
    }; 
});