2011-08-04 148 views
2

我有下面的複選框,我想將選中的值傳遞給一個數組,以便我可以做一個ajax文章。但是,我碰到一個錯誤,我不知道我錯了什麼地方... 如何將值傳遞到數組中,以及如何檢索它們?如何使用jQuery將複選框值傳遞給數組?

HTML

<input type="checkbox" name="newCheckboxes" value="1" /> 
<input type="checkbox" name="newCheckboxes" value="2" /> 
<input type="checkbox" name="newCheckboxes" value="3" /> 

腳本(不工作)

var allFields = $([]); 
$("#newCheckboxes:checked").each(function() { 
     allFields.add($(this).val()); 
}); 

$.ajax(
     { 
     type:"POST", 
     url: "PostedHere", 
     data:{ 
      checkedValues: allFields 

       } 
     }); 

回答

1

你只需要:

$.ajax({ 
    type:"POST", 
    url: "PostedHere", 
    data: { checkedValues: $("#newCheckboxes:checked").serialize() } 
}); 
// checkedValues: "newCheckboxes=1&newCheckboxes=2" etc.. 
+0

謝謝你的幫助。我似乎無法在我的servlet「PostedHere」中找回它。我用'字符串checkedValues =(字符串)request.getParameter(「checkedValues」);'這是正確的方式? – newtodatatables

0

使用karim79代碼的想法:

$.post('URL', $('[name="newCheckboxes"]:checked').serializeArray(), function(data){ 
    //data 
}); 
+0

任何想法如何我可以提取出我的網址信息? – newtodatatables

0

我更喜歡做的是:創建一個新對象,並添加所有複選框「價值」和「器isChecked」到一個數組(訪問),然後化JSON它傳遞給頁:

$(document).ready(function() { 
        $("#btnSave").click(function() { 
         event.preventDefault(); 
         $("#newCheckboxes").each(function() { 
         var data= new Object() 
         var access = new Array(); 
         access.ChValue = $(this).attr("value"); 
        if ($(this).attr("checked") == "checked") access.ChChecked = true; 
        data.push(access); 
       }); 

$.ajax({ 
       type: 'POST', 
       url: '@Url.Content("~/URLofPage")', 
       data: $.json.encode(data), 
       dataType: 'json', 
       contentType: 'application/json; charset=utf-8' 

      }); 
}); 
}); 

請不要忘記添加Json參考您的頁面:

<script src="../../../Scripts/jquery.json.js" type="text/javascript"></script> 
相關問題