首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >总是得到第一个输入元素的值。JQuery Ajax的问题

总是得到第一个输入元素的值。JQuery Ajax的问题
EN

Stack Overflow用户
提问于 2013-11-01 18:11:48
回答 3查看 1.1K关注 0票数 0

下面的$divCreator是一个变量。它的值可以从1到10。我在php的while循环中使用下面的html。现在,我想要做的是将两个变量传递给php脚本。一个是quesID,另一个是testID。我已经有了testID的价值。但是这个问题发生在quesID上。我总是将quesID值作为1,这是从while循环构建的第一个表单的值。HTML代码是:

代码语言:javascript
复制
<form id="form_create_ques" action="" method="get">
    <div class="grid-6 grid grey">
        <input id="quesid_form" name="quesID" type="text" value="<?php echo $divCreator;  ?>" />
        <input type="submit" class="button_create_ques" value="<?php echo $divCreator; ?>" />
    </div>
</form>

Jquery代码:(我的Jquery很弱,所以我需要一些帮助)。

代码语言:javascript
复制
<script type="text/javascript">
 $(document).ready(function (){
  $(".button_create_ques").click(function(){
    var form_data = $("#form_create_ques").serialize(); //Always returns quesID=1
    alert(form_data);
    $.ajax({
    url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>",
    type: 'GET',
    data: form_data,
    success: function() 
            {
             //Do something..
            }
        });
        return false;
      });
    });

如果您有更好的或替代的解决方案,那么请解释。我会很感激的。对不起,我还在学习Jquery。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-01 18:15:25

id值在文档中必须是唯一的。因为您的表单都具有相同的id,所以使用选择器(如$("#form_create_ques") )总是会返回该id的第一次出现。

您可以完全删除id,并使用它获取基于按钮的form

代码语言:javascript
复制
var form_data = $(this).closest("form").serialize();
票数 1
EN

Stack Overflow用户

发布于 2013-11-01 18:16:43

有两种可能的方法:

1:向表单中添加新的hidden字段:

代码语言:javascript
复制
<input type="hidden" name="quesID" value="<?php echo addslashes(htmlspecialchars($_GET['testID'])); ?>" />

2:删除data: form_data,并修改:

代码语言:javascript
复制
url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>&" + form_data,
票数 1
EN

Stack Overflow用户

发布于 2013-11-01 18:22:11

因为ID必须是唯一的,所以不能给所有表单相同的ID,所以省略ID。

代码语言:javascript
复制
<form action="" method="get">
    <div class="grid-6 grid grey">
        <input id="quesid_form" name="quesID" type="text" value="<?php echo $divCreator;  ?>" />
        <input type="submit" class="button_create_ques" value="<?php echo $divCreator; ?>" />
    </div>
</form>

然后,您应该在jQuery中使用DOM遍历函数来查找与单击的按钮对应的表单:

代码语言:javascript
复制
 $(document).ready(function (){
  $(".button_create_ques").click(function(){
    var form_data = $(this).closest("form").serialize();
    alert(form_data);
    $.ajax({
    url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>",
    type: 'GET',
    data: form_data,
    success: function() 
            {
             //Do something..
            }
        });
        return false;
      });
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19732744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档