2011-08-09 56 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进行任何操作 –