Jquery发布动态表单

时间:2015-05-21 07:50:33

标签: jquery

我有这段代码。它将动态生成多个表单。我想问一下如何写Jquery代码只发布选中的表单。 $ day实际上来自数据库,为了简单起见,我只是将它分配到6。

PHP

<?php

$day = 6;

for($i=1; $i<= $day ;$i++){

    echo "<div class='item'>";
    echo "<form class='itineraryForm' id='itineraryForm$i'  method = 'post'>";
    echo "<table>";
    echo "<tr>";
    echo "<th>Time</th>";
    echo "<th>Activities</th>";
    echo "</tr>";
    echo "<tr>";
    echo "<td>";
    echo "<input type='text' class='i_field' name='time[]' value='' />";
    echo "</td>";
    echo "<td>";
    echo "<input type='text' class='i_field' name='activities[]' value='' />";
    echo "</td>";
    echo "</tr>";
    echo "</tbody>";
    echo "<input type='image' id='i_save_btn' src='img/save.png' value='SAVE' align='right'/>";
    echo "</table>";
    echo "</form>";
}
?>

JS

$().ready(function () {
    $("#i_save_btn").click( function(e){
        $.post('inc/process.php', $(".itineraryForm").serialize(), function(data) {});
    });
});

1 个答案:

答案 0 :(得分:1)

使用下面的代码。

致电Event Delegation

  

事件委托允许我们将单个事件监听器附加到   父元素,将为匹配a的所有后代触发   选择器,无论这些后代现在存在还是被添加到   将来

- &GT;使用i_save_btn作为课程。总是应该是独一无二的。

$(document).ready(function () {
  $(document).on('click',".i_save_btn",function(e){
    e.preventDefault();
    $.post('inc/process.php', $(this).parents('form').serialize(), function(data) {});
   });
});

检查DEMO