2012-04-07 50 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 
}); 

希望這可以解決您的問題,或者至少可以讓您朝正確的方向發展。