2012-04-07 71 views
0

我在迭代表单phtml页面 我该如何提交或验证表单,当我点击按钮时。
因为当我循环的形式,该ID是所有形式
在同一页中的多个表单Jquery Ajax提交

我使用Zend框架一样,我开始在我看来,这样的形式来获得不同的ID为每个表单

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

我打发了$ answer [“answer_id”]把它的形式ID是这样
<form id="comment_form64623" method="post" action="">

是最好的方法是什么?或者Jquery有办法处理这个问题?

回答

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 
+0

你为什么认为不是一个好方法?是出于安全原因吗? – KJA 2012-04-07 22:17:18

+0

@KJA,因为您允许在您的页面发生冗余。这绝对不需要。您可以使用相同的表单来评论不同的条目。 – Starx 2012-04-07 22:21:49

+0

但答案编号与表格形式不同,它们不一样 – KJA 2012-04-07 22:24:31

0

也许你应该改变每个表单的ID。 ID和CSS中的类之间的区别在于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 
}); 

希望这可以解决您的问题,或者至少可以让您朝正确的方向发展。