Триггер клика JQuery срабатывает дважды в IE8
Это происходит только в IE8. Работает в Firefox, Chrome и IE11.
Когда я нажимаю ввод в поле ввода, метод addToCart вызывается дважды. Но если я нажимаю на кнопку, она вызывается только один раз. Пожалуйста, помогите.
Метод validateInput вызывается только один раз при нажатии Enter.
Я пробовал triggerHandler, но он запускает addToCart на неправильном (первом) элементе. Выкл / вкл, unbind / bind не помог.
Html:
<input id="quantity_225300" class="quantity numberinput" type="number">
<label class="sr-only" for="quantity_225300">Label Text</label>
<button id="addBtn_225300" class="addToCartBtn btn btn-mini" style="vertical-align: top;" disabled="">Add</button>
JavaScript
$(document).ready(function() {
$(document).on("click", ".addToCartBtn", addToCart);
$(document).on("blur", "input.quantity", validateInput);
$(document).on("keydown", "input.quantity", checkAndSubmitForEnterKey);
});
function checkAndSubmitForEnterKey(event){
var index = $(this).attr('id').lastIndexOf("_");
var skunum = $(this).attr('id')
.substr(index + 1, $(this).attr('id').length);
if (event.keyCode == '13') {
$(this).trigger("blur");
$('#addBtn_'+skunum).trigger("click");
}
}
var addToCart = function() {
log.debug("add to cart");
}
var validateInput = function() {
log.debug("validated");
}
1 ответ
Добавление event.preventDefault решило эту проблему.
if (event.keyCode == '13') {
event.preventDefault();
$(this).trigger("blur");
$('#addBtn_'+skunum).trigger("click");
}
}