【问题标题】:send a multiple serialize form发送多重序列化表单
【发布时间】:2013-08-17 05:25:36
【问题描述】:

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

尝试单位本身,这是两个简单的文档

forms.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>

process.php

 <?php

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

我想要的是,如果我在下面的最后一个表格中输入一个值,我会发送给你这个表格的值或你选择的任何值,而不是上面表格的值,问题出在哪里,做不想 q 一次发送所有表单的值 ls 只想发送表单的值来选择

【问题讨论】:

  • 所有表单都有相同的id 更改它们class
  • 给我一个例子说明它是如何工作的,这里有测试代码
  • how to each serialize? 可能重复 请不要因为人们第一次不理解您而重新发布问题。

标签: jquery serialization


【解决方案1】:
$(function() {
      $("form").each(function() {
          $(this).validate( {
              submitHandler: function(form) {
                  $.post('process.php', $(form).serialize(), function(data) {
                      $('#results').html(data);
                  });
              }
          });
      });
  });

【讨论】:

【解决方案2】:

添加具有唯一名称和/或 ID 的表单。请注意,输入类型从提交更改为按钮。

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

然后连接事件处理程序

$('input[type=button]').click(function(e)) {
    $(this).parent('form').submit();
};

最好不要在 DOM 中有两个具有相同 id 的元素。

【讨论】:

  • 我想要的是,如果我在下面的最后一个表格中输入一个值,我会发送给您发送此表格的值或您选择的任何值,而不是上面表格的值问题是并且不希望 q 一次发送所有表单的值 ls 只想发送表单的值来选择
  • 上面的代码提交了包含被点击按钮的表单。这不是你想做的吗?
【解决方案3】:

给每个表单一个类或相同的名称,然后使用 $(.class).serialize();

是的,你的 html 中不应该有具有相同 id attr val 的元素,这违背了唯一标识符的目的,不好的做法

【讨论】:

  • 好的,我该怎么做?嘲笑一个代码,你通过它来查看它是否有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-07
  • 2014-02-24
  • 2017-10-07
  • 1970-01-01
  • 2018-12-07
  • 2016-06-24
  • 1970-01-01
相关资源
最近更新 更多