2014-09-19 59 views
1
var checkedValues = $('.required:checked').map(function() { 
       return this.value; 
      }).get(); 

      var arr = new Array(10); 
      alert(checkedValues); 
      alert("number of values in it " +checkedValues.length); 
      if (checkedValues.length > 1) { 

       alert("I am inside if "); 
       arr = checkedValues.split(','); 

       alert("I am done with the split "); 
      } 
      else { 
       arr = checkedValues; 
       alert("No split needed "); 
      } 





       $.getJSON('@Url.Action("testcata", "home")' + + '?Type=' + "@(Session["typ"])" + "&city=" + "@(Session["cit"])" + "&chkd=" + checkedValues, 


      function (data) { 

          //code 
         }) 

In controller : 
public ActionResult testcata(string Type, int? city, int[] chkd) 
    { 
     //code 
    } 

我想获取检查框的值,并将它们存储在数组中,然后通过json函数发送给控制器。警报(“我已完成拆分”)未显示。请帮帮我。如何解析表单数据以在jQuery中使用JSON?

+1

使用控制台日志而不是警报 – 2014-09-19 12:56:52

+1

可以显示html吗? – Sablefoste 2014-09-19 12:57:21

+7

'checkedValues'已经是一个数组。你想要分裂什么? – 2014-09-19 12:59:28

回答

1

看一看.serializeArray()

var checkedValues = $('.required:checked').serializeArray(); 

它返回一个数组准备JSON,像这样:

[ 
    { 
    name: "a", 
    value: "1" 
    }, 
    { 
    name: "b", 
    value: "2" 
    }, 
    { 
    name: "c", 
    value: "3" 
    }, 
    { 
    name: "d", 
    value: "4" 
    }, 
    { 
    name: "e", 
    value: "5" 
    } 
] 
0

split适用于字符串。您可以使用split on each array index而不是whole array

如果你真的想拆分数组checkedValues,然后遍历这个数组然后use split on each index

这样的:

for(var i=0; i< checkedValues.length;i++){ 

var arr = checkedValues[i].split(','); 
// use arr for requrement. 

} 
+1

你应该在你的回答中包括什么需要改变以实现OP正在尝试什么 – Alex 2014-09-19 13:09:02

+0

为什么投票我正在进行一些编辑。 – 2014-09-19 13:11:56

0

尝试

// array of values 
var arr = []; 
$(".required") 
    .on("change", function (e) { 
    // `checked` `.required` elements 
    var checkedValues = $(this).prop("checked"); 
    // `if` `checkedValues` (any `required` elements `checked`) , continue 
    if (checkedValues) { 
     // populate `arr` with `.required` `checked` values 
     arr.push(checkedValues); 
     // do stuff with `arr` 
     // `console.log` values in `arr` , `arr` length 
     console.log("array of values: " + arr 
        , "array of values length: " + arr.length); 
    }; 
}); 

jsfiddle http://jsfiddle.net/guest271314/d332nfkh/

+0

console.log没有显示任何东西,当我检查复选框,然后运行 – 2014-09-20 04:39:00

+0

不确定是什么问题,在每个复选框检查,数组的值:真值数组的长度:1',数组值:true,真值数组长度:2',等等在jsfiddle中记录到'console'。 – guest271314 2014-09-20 14:17:57