【问题标题】:Passing value of checked checkboxes via AJAX to Java通过 AJAX 将选中复选框的值传递给 Java
【发布时间】:2016-03-27 07:48:14
【问题描述】:

我编写了下面的函数来获取选中复选框的值,这样我就可以使用 AJAX 将值发送到 Java 类,我在代码中使用的变量名称是 checkID。

 function getParam()
    {
        alert ($("#paramNameVal").val());
        //  $paramName=$('#paramName');
       // alert("Hi");

        var elements = $("[name^='Day']");
         var units = [];
            for (var i = 0; i < elements.length; i++){
            //  alert("for");
                var element = $(elements[i]);
                alert(element);
                if (element.is(":checked")){
                    units.push(element.val());
                }
            }

        var stringy = JSON.stringify(units);
        //alert(stringy);
        var interval=document.getElementById('time').value;
        $("#showParam1").html("");
        $.ajax({  
              type: "POST",  
              url: "dojo_Getgrid.action",  
              data:{Interval:interval ,Userlist : $("#paramNameVal").val(),checkID : stringy },
              // data: { ,},
              //data:$("#paramName").val(), 
              success: function( response ) {
                    console.log( response );
                    alert(response);
                    $("#showParam1").html(response);
                   // document.getElementById("showParam").style.display='block';
                  }          
              });
    }

但在 java 类中,如果我选择两个复选框而不是复选框的实际值,我只会得到 ["true" ,"true"]。

下面是复选框

<s:form name="parameterGrid" theme="simple" >
         <fieldset > 
         <table style=" margin: 0px;" border="0"
                    class="table-form">

                <tr >
                        <td align="justify"><s:label key="Everyday"></s:label></td>
                        <td align="justify"><s:checkbox name="All" id="All" theme="simple" onclick="check();"></s:checkbox></td>
                </tr>

                <tr>        
                        <td ><s:label key="Sunday"></s:label></td>
                        <td ><s:checkbox name="Day[1]" id="D1" fieldValue="Sunday"  theme="simple"></s:checkbox></td>
                        <td ><s:label key="Monday"></s:label></td>
                        <td ><s:checkbox name="Day[2]"  id="D2" fieldValue="Monday"   theme="simple" ></s:checkbox></td>
                        <td><s:label key="Tuesday"></s:label></td>
                        <td ><s:checkbox name="Day[3]"  id="D3" fieldValue="Tuesday"  theme="simple"></s:checkbox></td>
                        <td><s:label key="Wednesday"></s:label></td>
                        <td ><s:checkbox name="Day[4]"  id="D4" fieldValue="Wednesday"  theme="simple"></s:checkbox></td>
                        <td><s:label key="Thursday"></s:label></td>
                        <td ><s:checkbox name="Day[5]"  id="D5" fieldValue="Thursday"  theme="simple"></s:checkbox></td>
                        <td><s:label key="Friday"></s:label></td>
                        <td ><s:checkbox name="Day[6]"  id="D6" fieldValue="Friday"  theme="simple"></s:checkbox></td>
                        <td><s:label key="Saturday"></s:label></td>
                        <td ><s:checkbox name="Day[7]"  id="D7" fieldValue="Saturday"  theme="simple"></s:checkbox></td>

                        <%-- <s:hidden name="day1" id="day1" value="%{day1}" /> --%>
                    </tr>

                    </table>

【问题讨论】:

  • 因为您只是将选中复选框的val() 推送到单元中。如果你想在你的 java 类中接收单独的键,你应该添加单独的参数
  • 复选框的值是什么?
  • 我已经添加了上面的复选框

标签: java javascript jquery ajax


【解决方案1】:

我从来没有使用过Struts 表单,但通常你可以通过jQuery 获取元素属性值。 查看详细参数! http://struts.apache.org/release/2.0.x/docs/checkbox.html

而不是 单位.push(element.val()); 试试
units.push(element.attr('fieldValue'));

希望它会起作用!

【讨论】:

    【解决方案2】:

    首先设置复选框的值,例如

    <input class="Day1" type="checkbox" value="one">
    <input class="Day2" type="checkbox" value="two">
    <input class="Day3" type="checkbox" value="three">
    

    如果你想访问这些值

    var checkedValues = $("[name^='Day']:checked").map(function(){
                 return $(this).val();
         }).get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-21
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      相关资源
      最近更新 更多