1

我有一个问题,我有一个包含多个表单的字段,这些表单最多可以重复 50 次但具有不同的值​​​​,我想用 $ 从列表中选择的表单发送。post('process.php', $("#form") .serialize(), function(data),但是当点击一个表单值时只发送第一个表单而不发送表单值来选择。

尝试单位本身,这是两个简单的文件,例如

表格.html

<html>
<head>
<title>Ejemplo de form con jquery</title> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script type="text/javascript">
$(function() {
$("form").validate( {
submitHandler: function(form) {
$.post('process.php', $(form).serialize(), function(data) {
$('#results').html(data);
            });
        }
    });
});
</script>
</head>
<body>
<form method="post" id="form">
    <label for="name" id="name_label">Nombre</label>  
    <input type="text" name="name" id="name" size="30" value=""/>  
    <br>

    <input type="submit" name="submit" value="SEND"> 
</form>

<form method="post" id="form">
    <label for="name" id="name_label">Nombre</label>  
    <input type="text" name="name" id="name" size="30" value=""/>  
    <br>
  <input type="submit" name="submit" value="SEND"> 
</form>

<form method="post" id="form">
    <label for="name" id="name_label">Nombre</label>  
    <input type="text" name="name" id="name" size="30" value=""/>  
    <br>
  <input type="submit" name="submit" value="SEND"> 
</form>

<form method="post" id="form">
    <label for="name" id="name_label">Nombre</label>  
    <input type="text" name="name" id="name" size="30" value=""/>  
    <br>
  <input type="submit" name="submit" value="SEND"> 
</form>

<form method="post" id="form">
    <label for="name" id="name_label">Nombre</label>  
    <input type="text" name="name" id="name" size="30" value=""/>  
    <br>
  <input type="submit" name="submit" value="SEND"> 
</form>
<div id="results"></div>
</body>
</html>

进程.php

 <?php

    print "Form enviado correctamente: <br>the post value is <b>".$_POST['name']."</b> ";
?>

我想要的是,如果我在下面的最后一个表格中输入一个值,我会向您发送此表格或您选择的任何表格的值,而不是上面表格的值,即问题出在哪里并且不想要 q一次发送所有表单的值 ls 只想发送表单的值以选择

4

2 回答 2

0

不要为所有表单提供相同的 id。您始终可以使用序列化每个表单的数据,$('#formid').serialize(); 然后,您可以通过 Ajax POST 发送它。

或者,您可以完全省略“id”,并遍历每个表单并使用$(this). 由于您试图一次发送所有表单的数据,因此您可以在每个表单中都有一个。然后这样做。

$(document).ready(function(){ $.each($("form"), function() { 
     $(this).validate({  submitHandler: function() {

            $.post('process.php', $(this).serialize(), function(data) {

                    $(this).find('.result').html(data);
                });
        }
     }); });

});
于 2013-08-15T02:12:51.587 回答
0

submitHandler函数接收提交的表单作为其参数,因此您可以执行以下操作:

  $(function() {
      $("form").each(function() {
          $(this).validate( {
              submitHandler: function(formbeingsubmitted) {
                  $.post('process.php', $(formbeingsubmitted).serialize(), function(data) {
                      $('#results').html(data);
                  });
              }
          });
      });
  });

显然,jquery-validate 插件在应用于 jQuery 集合时无法正常工作。因此有必要分别使用.each()它们来初始化它们。

于 2013-08-15T02:17:53.577 回答