获取动态创建的下拉列表的值
Get value of dynamically created dropdowns
我有一个按钮,每次单击它时,它都会在 table 中创建一个新行,并在其 ID 中自动递增。
实际HTML:
<select class="dynService" id="service_1" name="service[]">
<option value="1" data-price="100">Option 1</option>
<option value="2" data-price="150">Option 2</option>
</select>
<input type="text" id="price_1" name="servprice[]" value="" />
因此,下次我单击该按钮时,它将创建具有相同 HTML 的另一行,只是 service_1 和 price_1 将是 service_2 并且price_2.
我的问题是如何创建 "service_1" 的 onchange 以从 service_1 获取数据价格并将其放置到 price_1 但不更改 price_2 值,因为用户可以添加多行服务,但不固定。
谢谢
您可以使用 .on() 将事件附加到动态添加的元素。
额外维护数据序列以使您的工作更轻松。您可以执行以下操作:
$(document).ready(function () {
$(document).on('change', '.dynService', function () {
var _targetId = '#price_' + $(this).data('serial');
$(_targetId).val($('option:selected', this).data('price'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="dynService" id="service_1" data-serial="1" name="service[]">
<option value="1" data-price="100">Option 1</option>
<option value="2" data-price="150">Option 2</option>
</select>
<input type="text" id="price_1" name="servprice[]" value=""/>
<select class="dynService" id="service_2" data-serial="2" name="service[]">
<option value="1" data-price="100">Option 1</option>
<option value="2" data-price="150">Option 2</option>
</select>
<input type="text" id="price_2" name="servprice[]" value=""/>
我有一个按钮,每次单击它时,它都会在 table 中创建一个新行,并在其 ID 中自动递增。
实际HTML:
<select class="dynService" id="service_1" name="service[]">
<option value="1" data-price="100">Option 1</option>
<option value="2" data-price="150">Option 2</option>
</select>
<input type="text" id="price_1" name="servprice[]" value="" />
因此,下次我单击该按钮时,它将创建具有相同 HTML 的另一行,只是 service_1 和 price_1 将是 service_2 并且price_2.
我的问题是如何创建 "service_1" 的 onchange 以从 service_1 获取数据价格并将其放置到 price_1 但不更改 price_2 值,因为用户可以添加多行服务,但不固定。
谢谢
您可以使用 .on() 将事件附加到动态添加的元素。
额外维护数据序列以使您的工作更轻松。您可以执行以下操作:
$(document).ready(function () {
$(document).on('change', '.dynService', function () {
var _targetId = '#price_' + $(this).data('serial');
$(_targetId).val($('option:selected', this).data('price'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="dynService" id="service_1" data-serial="1" name="service[]">
<option value="1" data-price="100">Option 1</option>
<option value="2" data-price="150">Option 2</option>
</select>
<input type="text" id="price_1" name="servprice[]" value=""/>
<select class="dynService" id="service_2" data-serial="2" name="service[]">
<option value="1" data-price="100">Option 1</option>
<option value="2" data-price="150">Option 2</option>
</select>
<input type="text" id="price_2" name="servprice[]" value=""/>