Javascript 获取数组下拉列表中选定值的数据价格
我有以下代码Javascript 获取数组下拉列表中选定值的数据价格,javascript,php,jquery,codeigniter,Javascript,Php,Jquery,Codeigniter,我有以下代码 <tbody> <tr> <td style="width:40%"> <select id="pname.0" name="pname[]" class="form-control "> <?php $this->db->order_by('name','asc'); $prod = $this
<tbody>
<tr>
<td style="width:40%">
<select id="pname.0" name="pname[]" class="form-control ">
<?php
$this->db->order_by('name','asc');
$prod = $this->db->get('product')->result_array();
foreach($prod as $row): ?>
<option data-price="<?php echo $row['price'];?>" value="<?php echo $row['prod_id'];?>" >
<?php echo ucwords($row['name']);?>
</option>
<?php endforeach; ?>
</select>
</td>
<td style="width:10%">
<input class="form-control" onchange="javascript:calc();" id="item_quantity.0" name="qnty[]" value=""/>
</td>
<td class="text-right" style="width:10%">
<input class="form-control text-right" onchange="javascript:calc();" id="item_price.0" name="price[]" value=""/>
</td>
<td class="text-right" style="width:10%">
<input class="form-control text-right" id="subtot.0" readonly name="item_sub_total" value=""/>
</td>
</tr>
</tbody>
首先将一个类分配给所有选择。(除了“表单控制”)。我想你有test
class
var selectedPrices = [];
var i = 0;
$(".test").each(function(){
selectedPrices[i] = $(this).find(":selected").attr("data-price");
i++;
});
现在,selectedPrices
是一个价格数组。您可以用它做任何您想做的事情。您可以监听元素的更改,并获得如下所示的price属性:
$('#pname.0').on('change', function(){
var price = $(this).find('option:selected').data('price');
});
PS:我不确定您是否可以在ID属性中使用“.”。这就是您想要的吗
//if your table has an id or class, use it as tag selector is not good without context.
//$(".tableClass") OR $("#tableID")
$("table").on('change', "select[id^='pname']", function() {
var $row = $(this).closest("tr");
$row.find("input[id^='item_price']").val( $(this).find('option:selected').data("price") );
});
因此,要在选择器中使用
,您需要如中所述(第2段)对其进行转义
Demo@选择字段也有动态id,如pname.0、pname.1等。我尝试过,但没有成功,请告诉我如何在我的文本框中获取selectedPrices的值。您忘了递增I
。在each()
loop中添加i++
是否希望在多个文本框中使用相同的选定值?@LShetty,否我希望在同一行中的相应文本框中使用选定值。@LSheety,我尝试了您的代码,它仅适用于id pname.0,但我希望它是动态的,因为它;It’从来都不一样。它正在改变pname.0、pname.1、pname.2等。因此,您应该更清楚您的问题!你有多行选择和输入吗?是的,我有多行选择和输入,id递增。请帮我确认一下,因为你的答案几乎就是我想要的。谢谢。这个代码正是我要找的。