jquery 获取动态创建的下拉菜单的值

rjee0c15  于 2022-12-29  发布在  jQuery
关注(0)|答案(1)|浏览(173)

我有一个按钮,每当您单击它时,它都会在表中创建一个新行,其中包含一个、一个和一个,它们的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的值,因为用户可以添加许多行服务,而且它不是固定的。
谢啦,谢啦

wswtfjt7

wswtfjt71#

可以使用. 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=""/>

相关问题