【问题标题】:Passing selected check boxes using jQuery servlet [duplicate]使用jQuery servlet传递选定的复选框[重复]
【发布时间】:2011-08-07 08:20:46
【问题描述】:

如何使用 jQuery post 方法将选中的复选框值传递给另一个 servlet(不低于一个)?

这是我正在使用 json 的 html 页面上生成复选框的 servlet 代码

for(int i=0;i<roles.size();i++){
                 JSONObject msg = new JSONObject();
                msg.put("selector", "#roles");
            //<input type=radio name="radio" value="<%=bean.getSno()%>"></td>
    msg.put("msg", 
            "<input type=checkbox id="+'"'+"checkedroles"+'"'+"name="+'"'+"checkedroles"+'"'
            +"value="+roles.get(i)+">"+roles.get(i)+"<br>");
    messages.put(msg);

            }

这是jquercode

* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

$(document).ready(function(){
  //global vars
  var UserName = $("#UserName"); //user name field
  var FirstName = $("#FirstName"); //first name
  var LastName=$("#LastName");
  var StreetAdress=$("#StreetAdress");
  var City=$("#City");
  var Province=$("#Province");
  var Organization=$("#Organization");
  var email=$("#email");
  var phone=$("phone");
  var checkedroles=$("#checkedroles");
  var selected = new Array();

    function checkCommentsForm(){
   return true;
  }
  $("input:checkbox[name=checkedroles]:checked").each(function() {
       selected.push($(this).val());
  });


  //When form submitted
  $("#Reg").submit(function(){
    if(checkCommentsForm()){
      $.ajax({
        type: "post",
        url: "loginProcess.jsp",
        data: {user : UserName.val(), fname : FirstName.val(),lname : LastName.val()
    ,stAddress:StreetAdress.val(),city:City.val(),prov:Province.val(),org:Organization.val()
    ,mail:email.val(),ph:phone.val(),'ch[]':selected},
        success: function(data) {
                                    }

});
        }

  });
});

还请告诉我如何在 servlet 中检索数组

【问题讨论】:

    标签: java jquery servlets


    【解决方案1】:

    您尚未显示您的 HTML,但从外观上看,这些值似乎在一个表单中。

    然后您可以改用('#Reg').serialize()。这将Encode a set of form elements as a string for submission. - 它将包括所有成功的控件,因此所有选中的复选框将自动包括在内,所有启用的文本字段也将包括在内。

    $("#Reg").submit(function(){
        if(checkCommentsForm()){
          $.ajax({
                type: "post",
                url: "loginProcess.jsp",
                data: $(this).serialize(),
                success: function(data) {
                        }
            });
        }
    });
    

    要在 servlet 中检索提交的值,请使用 ServletRequest#getParameter()ServletRequest#getParameterValues() 方法。前者用于当您只有一个参数值(例如,一个测试字段)时,后者当您可以有多个具有该参数名称的值时,例如,多个复选框与您的问题中的情况相同.所以你会在你的servlet中写这样的东西:

    String [] checked = request.getParameterValues("checkboxname");
    

    【讨论】:

    • 很好的解释 - 它应该适用于海报。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多