0

我正在做类似以下的事情:

$.each(data2, function(key2, val2) {
    $('#posts').append('<div class="send_comment" align="right">');
    $('#posts').append('<input type="hidden" class="com_post_id" value="'+i+'"><br /\>');
    $('#posts').append('Author: <input type="text" class="com_author"><br /\>');
    $('#posts').append('Img: <input type="text" class="com_img"><br /\>');
    $('#posts').append('Text: <input type="text" class="com_text"><br /\>');
    $('#posts').append('<button class="new_comment">Send</button>');
    $('#posts').append('</div>');
});

我怎样才能发送这些字段$.post?有了$(this),我可以获得点击的元素,但是呢?

4

3 回答 3

0

data = $(this).closest('form').serialize()

于 2012-05-04T19:13:02.710 回答
0

由于它是动态注入的元素,您应该使用绑定功能jQuery on

  $(function(){
      $(".send_comment").on("click",".new_comment",function(e){
         e.preventDefault();
         var item=$(this);
         var postId=item.parent().find(".com_post_id");   
         var author=item.parent().find(".com_author");  
         var msg=item.parent().find(".com_text");  

         $.post("yourPage.php", { id : postId, author:author ,msg:msg },function(result){
             //do whatever with result
              alert(result);
         });

      });
    });

http://api.jquery.com/on/

jQueryon将适用于当前和未来的元素。

于 2012-05-04T19:15:24.787 回答
0

我总是从 jqueryui 的网站上找到模态表单示例作为如何从表单发送数据的一个很好的例子:http: //jqueryui.com/demos/dialog/#modal-form

基本上给你的字段ID,然后:

var author = $( "#author" ),
    image = $( "#image" ),
    text = $( "#text" ),
    allFields = $( [] ).add( author ).add( image ).add( text );

然后使用帖子:

$.post("your_url_that_processes_data",allFields, function(data){ 
   // do something with data 
});

如果您有多种形式略有不同,那么有很多方法可以解决这个问题。我建议要么更改操作 URL,要么以某种方式从某些 DOM 元素中获取“id”。也许您可以将表单 id 更改为:"form-".id在您的脚本中,然后在提交之前阅读它。

我可以尝试帮助更详细的用例吗?

于 2012-05-04T19:19:45.260 回答