单击JQuery中的微调器时,OnChange事件在Input Type = Number中不起作用

时间:2018-08-31 17:29:18

标签: javascript jquery html

我有一个

<input type="number" class="post-purchase-amount"/>

我正在打电话给 当值更改时,ajax调用。当光标位于 文本框本身并进行任何更改。但是,当我单击输入类型的微调器(上/下按钮)时,它不起作用。

parentPanel.on("change", ".post-purchase-amount", null, function (event) {
    updateAmount($(this));
});

我的问题是我可以在这里使用“ input”事件,但是可以调用ajax 每次更改值时,例如我想发送值65 然后在键入每个数字时会调用两次。我只需要在值已更改而不是每个键都更改后才调用ajax 行程。 对不起我的英语不好。预先感谢

2 个答案:

答案 0 :(得分:0)

您如何创建一个功能来限制输入并在按键时触发它。像这样:

FirstNodeKey

答案 1 :(得分:0)

您的问题是,您正在等待更改,而无论何时进行更改,这都会触发。相反,您可以做的是在您“退出”数字输入时使用focusout进行观看。以下函数的作用是,当您退出对输入的关注时,它会检查先前的值是否等于新值。如果当前值不相同,则它已被更新。


var prevVal = $('.numOfPeople').val();

$('.numOfPeople').on('focusout', null, function(e) {
  var curVal = $('.numOfPeople').val();
  if(prevVal !== curVal) {
      //Value is different so do your updates here. 
      preVal = curVal;
      $('#changed').show();
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="numOfPeople" type="number" name="quantity" min="1" max="5">


<p id="changed" style="display: none;">Value has changed</p>