![](/img/trans.png)
[英]How to write the equivalent in backbone or ember or any javascript MVC framework of a simple jQuery AJAX call so that i can unit test it
[英]How to write an iterator in javascript for a simple AJAX call?
我很难过。 我试图通过迭代所有输入并收集它们的val()
这是一个字符串来发送一个AJAX调用。
所以我的params希望看起来像这样:
"action"=>"create",
"type"=>"zip",
"value"=> ["12", "13", "14", "14", "15", "16"],
"controller"=>"admin/distributions",
"email_id"=>"3"}
这就是我所拥有的,但它给了我一个[Object object]
作为一个值:
$(".all_of_morris").live("click", function(){
id = window.location.href.split("/")[5]
$.ajax({
type: "POST",
url: "/admin/emails/" + id + "/distributions",
dataType: "script",
data: { $.each($(".morris input"), function(){
value: $(this).val();
}),
type: "zip" }
});
});
如果需要value属性的数组,可以使用jquery map函数:
$(".all_of_morris").live("click", function(){
var data = {};
data.value = $(".morris input").map(function(){
return $(this).val();
}).get();
data.type = 'zip';
//..etc
id = window.location.href.split("/")[5]
$.ajax({
type: "POST",
url: "/admin/emails/" + id + "/distributions",
dataType: "script",
data: data
});
});
如何使用serialize()
?
$('.morris input').serialize();
并且你不想在json对象中使用.each
。 如果需要预处理,请首先使用您认为必要的方法在变量中构建有效负载,然后将该变量传递给.ajax
调用。
例如
var value = /*get value array */; ...
var dataToPass = {
'action' : 'create',
'value': value,
'type' : 'zip',
...
};
$.ajax({
...
data: dataToPass,
...
});
它返回一个对象,因为each
JQuery只执行其内容,而不是返回它。 数据键还接受字符串作为值,因此您可以遍历内容,生成类似"action=create&type=zip&..."
,然后将该数组作为数据键的值。
data: { value: $('.morris input').map( function() {
return $(this).val();
}).get(),
type: 'zip'
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.