在同一页面中的多个表单Jquery Ajax提交

时间:2012-04-07 21:40:01

标签: ajax zend-framework jquery

我正在 phtml 页面中迭代一个表单 当我点击按钮时,如何提交或验证表格。
因为当我迭代表单时,所有表单的id都是相同的

我正在使用Zend Framework,我在我的视图中启动Form,以便为每个表单获取不同的ID

<?php
$commentForm = new Application_Form_Comment**($answerId)**;
 echo $commentForm?>

我发送了$ answer [&#39; answer_id&#39;],将其置于表单ID中,如此 <form id="comment_form64623" method="post" action="">

是最好的方法吗?或者Jquery有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我会说,不是它不是好方法,附加ID,就像那样。配置zend的表单将id作为隐藏参数,最后呈现为

<form id="comment_form" method="post" action="">
    <input type="hidden" name="answer_id" id="answer_id" value="64623" />

接下来,配置jQuery将表单的位置更改为不同的位置并更新,如

$("form").appendTo($("#newDiv")); //Place the for somewhere else
$("#answer_id").val(newval); //Set a new id for the form

答案 1 :(得分:0)

也许您应该更改每个表单的ID。 CSS中的ID和类之间的区别在于ID不能多次使用,类可以。如果你有id="form1"id="form2"这样的表单,那么你会很好地找到它,但是将它们全部设为id="form1"会导致一些问题。

要回答你的问题,jQuery可以很好地解决这个问题,它可以像这样工作......

假设您的所有表单都有类似的类(class="formObject"),您可以使用以下命令同时在所有表单上运行代码:

$(".formObject").each(function() {
    //Do whatever
});

相反,如果您想要处理单个表单,您应该通过ID(请记住,对于页面上的所有其他ID应该是唯一的)来调用它:

$("#form1 input[type=submit]").on("click", function() {
    //Do whatever
});

希望这可以解决您的问题,或者至少指出您正确的方向。