乾草傢伙,我正在做一些工作,我有一大堆表單。似乎這些不是傳統的方式(即使用提交按鈕)「發佈」。我需要一種方法來收集點擊鏈接時所有表單數據的所有名稱和值(然後將document.location用於重定向)。Jquery獲取所有輸入值並創建一個數組(帶名稱)
我希望名稱保持不變,以便我可以使用簡單的PHP腳本來處理數據。
有什麼建議嗎?
乾草傢伙,我正在做一些工作,我有一大堆表單。似乎這些不是傳統的方式(即使用提交按鈕)「發佈」。我需要一種方法來收集點擊鏈接時所有表單數據的所有名稱和值(然後將document.location用於重定向)。Jquery獲取所有輸入值並創建一個數組(帶名稱)
我希望名稱保持不變,以便我可以使用簡單的PHP腳本來處理數據。
有什麼建議嗎?
我可以建議Serialize Form to JSON:
$.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; };
,然後你可以這樣做:
var formArray = $("#myform").serializeObject();
您可以使用像我提交助手爲基地
function submit(form) {
var form = $(form);
$.ajax(
{ data: $.param(form.serializeArray()),
dataType:'script',
type:'post',
url: form.attr("action")});
}
,而不是一個「serializeArray()」我會用「序列化()」和而不是使用AJAX你可以做張貼任何你想。
對不起,沒有更多的時間,但希望這個片段可以幫助你。
cletus的答案是efficency方面最好的一個。
然而,這另一個工作的解決方案,不依賴於JSON:
//this is my object I will fill my array with
function myObject(name, value)
{
this.name = name;
this.value = value;
}
var arr = $.map(
$('span'), function (item) {
var $item = $(item); //no need to $(item) 2 times
return new
myObject(
$item.attr("name"), //name field
$item.text() //value field
);
}
);
arr
將是myObject
陣列,它們中的每一個包含屬性name
和value
屬性。
使用您的選擇器代替$('span')
。
$.fn.valuesArr = function()
{
var a = [];
jQuery.each(this, function(i, field){
a.push($.trim(field.value));
});
return a;
}
用途:
var myArr = $('input', $parentJQelem).valuesArr();
,但是這一切功能在不投入工作女巫數組名。
例子 -
這是正確的提交後的形式,但在連載我得到
形式[類型[]:2
這是不正確 - 我需要 - 形式[型] []:2
我認爲$ .param和form.serializeArray()的組合是關鍵。不seralize :)。但我不確定。 – reto 2009-11-24 13:00:27