使用在循环

时间:2016-11-29 12:40:00

标签: jquery html forms dynamic drop-down-menu

这是我的第一个问题,如果我违反了任何规则,请原谅我。这更具体地说是一个与jquery相关的问题,而我对jquery的知识是有限的。

我试图从FOR循环中动态创建的表单中获取SELECT元素的值。问题是当我能够获得第一个表单的值时,它为下一组表单返回相同的值。

例如,使用FOR循环,我生成5个带有多个隐藏输入字段的动态表单,一个选择字段(值是静态的,如1,2,3等)和一个提交按钮。使用jquery attr()函数获取不同表单的隐藏输入字段的值没有问题。但是当我将此attr()函数应用于SELECT字段时,它仅适用于第一个表单。所有后续表单都返回与第一个表单相同的值。

var value= $('option:selected', '.select-class').attr('data-value');

请建议我如何获取循环内多个表单的SELECT字段值。

由于

编辑:下面我粘贴了整个代码。它已经从原来的版本进行了修改,但问题仍然是一样的。您现在可以看到我使用锚标记(而不是按钮)和while循环(而不是现在循环)发送数据。请看一下代码。

<?php while($fetch=$query->fetch()) { ?>
      <select class="form-control sel_qty" name="product_qty" >                                            
             <option value="1" data-qty="1">1</option>
             <option value="2" data-qty="2">2</option>
             <option value="3" data-qty="3">3</option>
             <option value="4" data-qty="4">4</option>
             <option value="5" data-qty="5">5</option>                                            
       </select>
       <a href='#' class="btn btn-primary cart_submit" 
            data-code="<?php echo $fetch['product_code']; ?>" 
            data-title="<?php echo $fetch['title']; ?>" 
            data-price="<?php echo $fetch['price']; ?>" 
            data-url="<?php echo $fetch['url']; ?>" > 
        Submit 
        </a>
<?php } ?>

使用jquery我可以通过以下方式获取while循环中每个锚标记的数据属性值:

                   var product_code= $(this).attr("data-code");
                   var product_title= $(this).attr("data-title");
                   var product_price= $(this).attr("data-price");
                   var product_url= $(this).attr("data-url");

但是如何获取while循环中每个select元素的值。我只能获得第一个选择元素的值,而不是后续的元素。

                 var value= $('option:selected', '.sel_qty').attr('data-qty');

以上代码仅获取循环中可用的第一个选择元素的值

1 个答案:

答案 0 :(得分:0)

根据您提供的少量信息和代码,如果您发布的代码是循环内的代码,那么您的问题不是动态创建的表单,而是您正在使用的循环内的引用不是相对的。 不知道你在做什么,你可以做类似的事情:

$('form').each(function(){
    var form = $(this);
    var value= form.find('option:selected', '.select-class').attr('data-value');
    ...
})
相关问题