如何使用javascript从select中获取价值

时间:2017-10-20 07:18:42

标签: javascript prestashop



$(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();
});
&#13;
<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>
&#13;
&#13;
&#13;

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

查看valueFromForm变量。这是一个Prestashop 1.6,我想用它。要测试此代码您可以选择&#34;尺寸&#34;属性。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

要获得选择,请使用 $('#group_2:selected')。val();

你使代码变得更复杂

为什么在Jquery里面使用像 document.getElementById(“group_2”)。value; 这样的vanilla?

答案 1 :(得分:0)

我已经为您的代码添加了一些更改器,但我不知道以下值是什么,

allowBuyWhenOutOfStock quantityAvailable fieldName的

现在代码正在破坏尝试

&#13;
&#13;
$(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();
  });
})
&#13;
<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>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

请查看此jsBin以了解get如何适用于您的情况:

JsBin example

但毕竟:

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

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

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

在你的情况下:

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

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