我正在尝试编写一个jQuery事件来检查输入量是否小于或等于零。如果为true则清除输入的金额。
但是在我的事件完成之后,另一个事件正在为该元素运行,该元素将默认值值设置为零。谁能告诉我如何在活动结束后停止任何第二次活动。
我尝试过使用
event.stopImmediatePropagation();
event.preventDefault();
event.stopPropagation();
但尚未成功。
这是我的代码:
$(document).on('change', 'input[id^="amount_totalPaymentAmout"]', function(event) {
var paymentAmount = parseFloat($(this).val().replace(/,/g, ""));
if (paymentAmount <= 0) {
$.sticky("Total payment amounts entered should be greater then Zero.", {
autoclose: 2000,
position: "top-right",
type: "st-error"
});
$(this).val('');
$(this).focus();
return false;
}
});
答案 0 :(得分:0)
试试这个: -
$(document).on("blur", "#yourid", function(e) {
var myVal = $(this).val();
if(myVal <= 0){
alert('amount is less');
$(this).val('');
$(this).focus();
return false;
}
});
答案 1 :(得分:-1)
也许你可以依赖HTML5新字段'number'
<input type="number" step="1" value="0" min="0" max="64">
编辑:
我尝试了这段代码并且有效。基本上,我希望你做同样的事情,事件的条件。
我有两个按钮,一个只有加载器类,另一个有类和一个id。 如果我单击加载器类,则会启动该事件。但是,如果我点击带有id的按钮,我希望只有选中复选框才启动事件,如果没有,我想要一个警告框来显示和停止所有事件。
e.stopImmediatePropagation();
可以解决问题
<input type="checkbox" id="check_cgv"><label for="check_cgv">Checkbox text</label>
<button type="submit" class="btn btn-white loader">CLASS EVENT</button>
<button type="submit" class="btn btn-white loader" id="form-submit">CLASS AND ID EVENT</button>
<script>
$(document).on({
click: function (e) {
if(!$('#check_cgv').is(':checked')){ //if not checked
e.preventDefault(); // stop default behaviour
e.stopImmediatePropagation(); // stop all other events
alert('Event 1 launched, event 2 blocked');
}
}
}, '#form-submit');
$(document).on({
click: function (e) {
alert('Event 2 launched');
}
}, '.loader');
</script>
只要阻止事件的代码在您要阻止的事件上方声明,就会有效。
答案 2 :(得分:-1)
//try below code
$("input[id^='amount_totalPaymentAmout']").on('keyup', function(event) {
var paymentAmount = parseFloat($(this).val().replace(/,/g, ""));
if (!paymentAmount > 0 ) {
$.sticky("Total payment amounts entered should be greater then Zero.", {
autoclose: 2000,
position: "top-right",
type: "st-error"
});
$(this).val('');
$(this).focus();
}
});