2011-05-31 79 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