2011-04-05 48 views
0
 $('form#input, form#radio, form#select').change(function() { 
    $.post("assets/ajax/save.php", 
      { "id": $("input#id").val(), $(this).attr('name') : $(this).val() }, 
      function(data) { 
      alert(data); 
      }, 
      "html" 
     ); 
}); 

有问题的位是“$(this).attr('name')”部分。是否可以动态创建名称?上面的代码会引发错误。Jquery .post:是否可以使用动态名称(来自名称/值对)?

回答

3

当然是,但你必须使用支架([])符号构建hash:

$('form#input, form#radio, form#select').change(function() { 
    var data = {"id": $("input#id").val()}; 
    data[$(this).attr("name")] = $(this).val(); 
    $.post("assets/ajax/save.php", 
     data, 
     function(data) { 
     alert(data); 
     }, 
     "html" 
    ); 
    });