![](/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.