这是我的第一个问题,如果我违反了任何规则,请原谅我。这更具体地说是一个与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');
以上代码仅获取循环中可用的第一个选择元素的值
答案 0 :(得分:0)
根据您提供的少量信息和代码,如果您发布的代码是循环内的代码,那么您的问题不是动态创建的表单,而是您正在使用的循环内的引用不是相对的。 不知道你在做什么,你可以做类似的事情:
$('form').each(function(){
var form = $(this);
var value= form.find('option:selected', '.select-class').attr('data-value');
...
})