我有一个
<input type="number" class="post-purchase-amount"/>
。
我正在打电话给 当值更改时,ajax调用。当光标位于 文本框本身并进行任何更改。但是,当我单击输入类型的微调器(上/下按钮)时,它不起作用。
parentPanel.on("change", ".post-purchase-amount", null, function (event) {
updateAmount($(this));
});
我的问题是我可以在这里使用“ input”事件,但是可以调用ajax 每次更改值时,例如我想发送值65 然后在键入每个数字时会调用两次。我只需要在值已更改而不是每个键都更改后才调用ajax 行程。 对不起我的英语不好。预先感谢
答案 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>