2011-08-09 133 views
1

我有一個使用PHP動態生成的多個表單的頁面。我正在使用jQuery Validation插件驗證它們。這些表格都是一樣的,但涉及到不同的項目,所以我已經將所有表格都提供給同一個類,以便它們可以通過一個函數進行驗證(每個表單也具有唯一的ID)。但我有一些問題:使用動態生成的表單進行jQuery表單驗證

  1. 我想通過正確的形式項目出現的錯誤消息,但如果我只是使用窗體的類,驗證器將不知道該項目是哪種形式從。
  2. 我有一個超鏈接來提交表單(以及<noscript>標籤中的常規submit按鈕),並且通常會使用jQuery來提交表單,但是jQuery如何知道我點擊了哪個提交鏈接以及哪個表單提交?

我能想到的最簡單的事情就是通過表單ID來驗證一些方法。那可能嗎?

的形式是這樣的:

<?php while($row= pg_fetch_row($groups)) { ?> 
<p class="error" id="error-<?php echo $row[0] ?>"></p> 
<form action="../scripts/php/groups-process.php" method="post" id="editgroup-<?php echo $row[0] ?>" class="editgroup"> 
    <label for ="edit-<?php echo $row[0] ?>" >Edit group name:</label> 
    <input type="text" class="text" size="20" maxlength="30" name="edit" id="edit-<?php echo $row[0] ?>" value="<?php echo $row[1] ?>" /> 
    <noscript><input type="submit" name="editgroup" value="Submit" /></noscript> 
    <div id="submitcontainer-<?php echo $row[0] ?>"></div> 
</form> 
<?php } ?> 

我通常會驗證這樣的形式:

$(document).ready(function(){ 
    $("#editgroup").validate({ 
     rules: {edit: {required: true, maxlength: 30}}, 
     messages: {edit: {required: 'Please enter a group name', maxlength: 'Please enter a shorter group name'}, 
     errorContainer: "p#error", 
    }); 
    $("#submitcontainer").html('<a class="button" href="javascript:void();" id="submitlink" name="submit">Submit</a>'); 
    $("#submitlink").click(function() { 
     $("#editgroup").submit(); 
    }); 
}); 
+0

請粘貼一些你已經試過的HTML和JS的代碼。 – LeeR

+0

我已經爲我的問題添加了一些代碼。我還沒有真正嘗試過任何JS,我開始從另一種形式的代碼中調整代碼,然後卡住了。我一直在尋找互聯網,但我還沒有找到解決方案。 – Pikaling

回答

0

我最終迭代了我的結果兩次,所以我爲每個表單動態地創建一個表單驗證器,然後動態地y創建表單。這是我能想到的最好的方式來給我我想要的控制權,儘管顯然它速度較慢並且生成更多代碼 - 這不是一個理想的解決方案,但它適用於這種情況。

0

給同一類的所有形式大於試試這個,

<form id="1" class="common" method="post" action="page.php"> 
    <input type="text" class="common_input_class" size="20" maxlength="30" name="edit" id="whatever" value="whatever" /> 
    <input type="submit" name="submit" class="submit_this_form" value="submit" /> 
    </form> 

    <form id="2" class="common" method="post" action="page.php"> 
     <input type="text" class="common_input_class" size="20" maxlength="30" name="edit" id="whatever" value="another value" /> 
      <input type="submit" name="submit" class="submit_this_form" value="submit" /> 
    </form> 

    <script type="text/javascript"> 
     $(".common").submit(function(){ 
     var form_id = $(this).attr('id'); 
     var input_val = $(this).children('.common_input_class').val(); 
     if (input_val == '') 
     { 
     alert("input field is required"); 
     return false; 
     } 
}); 
    </script> 
+0

現在,您正在獲取表單ID,並且您知道哪個表單已提交,可以使用該表單ID進行任何操作 –