在选择更改时,使用jQuery获取选定的值

时间:2018-06-13 02:15:16

标签: jquery

我有这个HTML:

<div class="modal-body">
    <div class="form-group">
        <label class="col-sm-3">Élément à facturer</label>
        <div class="col-sm-9">
            <div class="col-sm-12">
                <select class="form-control" name="BIL_Item_Id">
                    <option value="">Sélectionner un élément</option>
                    <option value="" data-item-rate="" data-item-taxes="7" data-item-taxes-sum="0" data-item-type="Night">Nuitée</option>
                    <option value="17" data-item-rate="21.00" data-item-taxes="8,7" data-item-taxes-sum="0" data-item-type="Item">Petit-Déjeuner</option>
                </select>
            </div>
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3">Quantité</label>
        <div class="col-sm-9">
            <div class="col-sm-12">
                <select class="form-control" name="BIL_Item_Quantity">
                    <option value="1">1</option>
                    <option value="2">2</option>
                </select>
            </div>
        </div>
    </div>
</div>

在选择中更改(BIL_Item_Id和BIL_Item_Quantity)时,我想从第一个选择中获取一些信息。

所以我正在使用这个脚本:

$('select[name="BIL_Item_Quantity"], select[name="BIL_Item_Id"]').on('change', function() {
    var parent = $(this).closest('div.modal-body');

    // Get datas
    var quantity = parent.find('select[name="BIL_Item_Quantity"]:selected').val();
    var rate = Number.parseFloat(parent.find('select[name="BIL_Item_Id"]:selected').data('item-rate')).toFixed(2);

    alert(quantity);
    alert(rate);
});

但它不起作用。

你知道为什么吗?

感谢。

2 个答案:

答案 0 :(得分:0)

请查看以下更新的代码以选择数据:

var quantity = parent.find('select[name="BIL_Item_Quantity"]').val();
    var rate = Number.parseFloat(parent.find('select[name="BIL_Item_Id"]').find(":selected").data('item-rate')).toFixed(2);

jsFiddle

答案 1 :(得分:0)

每当您更改选择字段时,使用jquery的答案都会将选定的第一个选择元素选项中的值记录到控制台。

&#13;
&#13;
  $("#selectOne , #selectTwo").change(function()
  {
    var text = $('#selectOne').find(":selected").text();  
    console.log(text);
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal-body">
    <div class="form-group">
        <label class="col-sm-3">Élément à facturer</label>
        <div class="col-sm-9">
            <div class="col-sm-12">
                <select class="form-control" id="selectOne" name="BIL_Item_Id">
                    <option value="2">Sélectionner un élément</option>
                    <option value="2" data-item-rate="" data-item-taxes="7" data-item-taxes-sum="0" data-item-type="Night">Nuitée</option>
                    <option value="17" data-item-rate="21.00" data-item-taxes="8,7" data-item-taxes-sum="0" data-item-type="Item">Petit-Déjeuner</option>
                </select>
            </div>
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3">Quantité</label>
        <div class="col-sm-9">
            <div class="col-sm-12">
                <select class="form-control"  id="selectTwo" name="BIL_Item_Quantity">
                    <option value="1">1</option>
                    <option value="2">2</option>
                </select>
            </div>
        </div>
    </div>
</div>
&#13;
&#13;
&#13;