jQuery检查金额

时间:2016-02-22 11:17:48

标签: jquery

我正在尝试编写一个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;
    }
});

3 个答案:

答案 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();

          }
      });