如何使用 javascript 从 select 获取值

How to get value from select using javascript

$(document).on('click', '.product_quantity_up', function(e){
        var valueFromForm;
        valueFromForm = document.getElementById("group_2").value;

    e.preventDefault();
    fieldName = $(this).data('field-qty');
    var currentVal = parseInt($('input[name='+fieldName+']').val());
    if (!allowBuyWhenOutOfStock && quantityAvailable > 0)
        quantityAvailableT = quantityAvailable;
    else
        quantityAvailableT = 100000000;
    if (!isNaN(currentVal) && currentVal < quantityAvailableT)
        $('input[name='+fieldName+']').val(currentVal + valueFromForm).trigger('keyup');
    else
        $('input[name='+fieldName+']').val(quantityAvailableT);

    $('#quantity_wanted').change();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<select name="group_2" id="group_2" class="form-control attribute_select no-print">                                                                 <option value="18" selected="selected" title="35">35</option>
<option value="19" title="36">36</option>
<option value="20" title="37">37</option>
<option value="21" title="38">38</option>
<option value="22" title="39">39</option>
<option value="23" title="40">40</option>
</select>

我有一个下拉列表,我想获取值。接下来,将此值添加到数量中。

查看 valueFromForm 变量。这是我要使用它的 Prestashop 1.6。要测试此代码,您可以选择 "Size" 属性。

感谢您的帮助。

要选择使用 $('#group_2 :selected').val();

你的代码有点复杂

为什么在 Jquery 中使用像 document.getElementById("group_2").value; 这样的 vanilla JS ??

我已经对您的代码进行了一些更改,但我不知道以下值是什么,

allowBuyWhenOutOfStock 数量可用 字段名

现在代码正在破坏尝试它

$(document).ready(function() {
  var allowBuyWhenOutOfStock = true
  var quantityAvailable = 100
  $(document).change(function(e) {        
    var valueFromForm;
    valueFromForm = document.getElementById("group_2").value;
    e.preventDefault();
    fieldName = $(this).data('field-qty');
    var currentVal = parseInt($('input[name=' + fieldName + ']').val());
    if (!allowBuyWhenOutOfStock && quantityAvailable > 0) {
      quantityAvailableT = quantityAvailable;
    } else {
      quantityAvailableT = 100000000;
    }
    if (!isNaN(currentVal) && currentVal < quantityAvailableT) {
      $('input[name=' + fieldName + ']').val(currentVal + valueFromForm).trigger('keyup');
    } else {
      console.log(fieldName + " " + quantityAvailableT)
      $('input[name=' + fieldName + ']').val(quantityAvailableT);
    }
    $('#quantity_wanted').change();
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<select name="group_2" id="group_2" class="form-control attribute_select no-print">
<option value="18" selected="selected"title="35">35</option>
<option value="19" title="36">36</option>
<option value="20" title="37">37</option>
<option value="21" title="38">38</option>
<option value="22" title="39">39</option>
<option value="23" title="40">40</option>
</select>

请查看此 jsBin,了解 get 在您的情况下应该如何工作:

JsBin example

但毕竟:

  • 获取 select 元素的值:$("#group_2").val();

  • 获取 selected 选项的文本:$("#group_2").find("option:selected").text();

  • 获取selected选项的其他属性:$("#group_2").find("option:selected").attr("title");

你的情况:

var valueFromForm = $("#group_2").val();

我还可以建议检查附加到输入字段的 "keyUp" 事件,因为 jQuery 链的末尾是这样的:.trigger('keyup')