2011-05-31 148 views
0

我有這個代碼工作。如何從物體中獲取價值?

$(document).ready(function(){ 
    $('form').live('submit', function(){ 

    // have to do it like this to simulate my problem 
    var aform = $(this); 

    var dat = { "TITLE" : "55h5", "OWNER" : "fff" }; 
    $('#template').tmpl(dat).prependTo('#content'); 

    return false; 

    }); 
}); 

但我想是從aform採取的價值觀和直接插入

$('#template').tmpl( HERE ).prependTo('#content'); 

從表單中的數據已經都通過aform訪問模擬我的問題。這可以做到嗎?

這裏的問題是出

http://jsfiddle.net/HYLYq/

回答

5

你可以使用.serializeArray(),然後遍歷它來創建正確的數據結構:

var data = {}, 
    values = $(this).serializeArray(); 

for(var i = values.length; i--;) { 
    data[values[i].name] = values[i].value; 
} 

你可以做同樣的普通的JavaScript (可能更快):

var elements = $(this)[0].elements, 
    data = {}; 

for(var i = elements.length; i--;) { 
    data[values[i].name] = values[i].value; 
} 
+0

I如果我嘗試,它不會輸出任何內容。 http://jsfiddle.net/HYLYq/4/ – 2011-05-31 11:03:41

+1

這是一個基於felix的答案的工作示例。我也更改了模板,所以標題和所有者都是小寫 - http://jsfiddle.net/HYLYq/5/ – 2011-05-31 11:05:09

+1

@Sandra:元素的'name'屬性是小寫字母,而模板變量是大寫字母。兩者必須是相同的。 – 2011-05-31 11:06:05