form.serialize()方法是不是检测到ajax响应呈现的复选框?

时间:2013-04-29 10:53:07

标签: ajax jquery serialization

我有一个带有html表单的jsp页面,其中有3个隐藏字段,1个选择框和一个包含10个复选框和一个提交按钮的div。 在表单的action属性中没有为此表单设置操作页面。 表单是使用ajax提交的。 表格要么在选择框的chage事件上提交给servlet A,要么在提交按钮的点击事件上提交给servlet B.

每当选择选择框中的值时,表单将使用ajax和包含用户名列表的ajax响应提交 与复选框相关联在div中呈现而没有刷新页面。这部分工作正常。

无论何时单击提交按钮,表单都会使用ajax提交,如果选中任何复选框,则复选框的值 存储在会话中。问题出在这里。每当第一次呈现Jsp页面时,如果我们选择一些复选框并提交按钮 单击,然后上面解释的功能正常。     但是当jsp页面被渲染并且选择了box选项并且它的ajax响应被呈现为包含复选框和时 在这里,如果我选择了几个复选框并单击提交按钮,那么在Servlet B中我只获得隐藏字段的值并选择框但是值 servlet B没有收到复选框。

我想问专家这个问题背后的原因以及解决方法是什么。

以下是通过单击“提交”按钮执行jquery代码。

$("#idbtnsubmituser").click(function(){
    //alert("this is test1");

    //get the form data and then serialize that
    dataString = $("#userlistrequestform").serialize();  
    /*
    As per my understanding the above code line is not getting the selected     checkboxes value. i.e. the serialize function can not 
detect the check boxes rendered by ajax response on event of select box change event.
    */
    $.ajax({
     type: "POST",
     url: "CutUser",
     data: dataString,
     //dataType: "json",

    //if received a response from the server
    success: function( data, textStatus, jqXHR) {
        $("#idmoveuserdiv").html(data);
    },

    //If there was no resonse from the server
    error: function(jqXHR, textStatus, errorThrown){
         console.log("Something really bad happened " + textStatus);
          $("#ajaxuserListResponse").html(jqXHR.responseText);
    },

    //capture the request before it was sent to server
    beforeSend: function(jqXHR, settings){
        $('#userlistpageselect').attr("disabled", true);
    },

    //this is called after the response or error functions are finsihed
    //so that we can take some action
    complete: function(jqXHR, textStatus){
        //enable the button 
        $('#userlistpageselect').attr("disabled", false);
        $('.checkuser').attr("checked",false);
    }
});
});

请指导我这个问题的朋友。

谢谢你!

0 个答案:

没有答案