简体   繁体   English

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

[英]On select change, get selected value with jQuery

I have this HTML: 我有这个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>

On change in the selects (BIL_Item_Id and BIL_Item_Quantity), I would like to get some info from the first select. 关于选择(BIL_Item_Id和BIL_Item_Quantity)的更改,我想从第一次选择中获取一些信息。

So I'm using this script: 所以我正在使用此脚本:

$('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);
});

But it doesn't work. 但这是行不通的。

Do you know why ? 你知道为什么吗 ?

Thanks. 谢谢。

Please check below updated code for selecting data: 请检查以下更新的代码以选择数据:

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 jsFiddle

Here is an answer using jquery whenever you change a select field the value from the first select elements selected option is logged to console. 每当您更改选择字段时,这就是使用jquery的答案,来自第一个选择元素selected选项的值将记录到控制台。

  $("#selectOne , #selectTwo").change(function() { var text = $('#selectOne').find(":selected").text(); console.log(text); }); 
 <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> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM