获取html用户生成的输入无效

时间:2017-12-29 18:07:39

标签: javascript jquery html

我有一个数量选择器,用户点击加号或减号来增加或减少数字。



function initQuantity() {
  if ($('.plus').length && $('.minus').length) {
    var plus = $('.plus');
    var minus = $('.minus');
    var value = $('#quantity_value');

    plus.on('click', function() {
      var x = parseInt(value.text());
      value.text(x + 1);
    });

    minus.on('click', function() {
      var x = parseInt(value.text());
      if (x > 1) {
        value.text(x - 1);
      }
    });
  }
}

initQuantity();

<link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>Quantity:</span>
<div class="quantity_selector">
  <span class="minus"><i class="fa fa-minus" aria-hidden="true"></i></span>
  <span id="quantity_value">1</span>
  <span class="plus"><i class="fa fa-plus" aria-hidden="true"></i></span>
</div>
&#13;
&#13;
&#13;

一切正常。我需要做两件事;设置quantity_value的最大值并获取用户值。我尝试了这个来获取用户值

var qty = document.getElementById("quantity_value").value;

但我得到的是:

  

未定义

如何实现获取用户增加的值并设置数量选择器的最大值?

3 个答案:

答案 0 :(得分:3)

您已经拥有

中的quantity_value
var x = parseInt(value.text());

您可以在更新前应用验证

value.text(x + 1);

喜欢这个

if(x <= MAXIMUM_VALUE){
    value.text(x + 1);
}

答案 1 :(得分:1)

它返回undefined,因为span元素没有您尝试访问的value属性。以下内容适用于现代浏览器...

width/height

这类似于this question

答案 2 :(得分:1)

您已经在使用jQuery,因此利用它而不是使用document.getElementById("quantity_value")可以使用jQuery选择器。

同样@sinisake指出你必须访问文本内容,而不是span元素没有值属性的值:

var qty = $('#quantity_value').text();