如何在JQuery中捕获拖放事件?

时间:2015-08-12 07:46:12

标签: javascript jquery

textbox;有十进制验证:

i.e User can enter only Numbers(upto two place decimal) and Dot. 

这些是 keypress keyup

直接输入数字时,它可以正常工作。

但是当我们在文本框中拖放一些字母时 然后它不起作用;直到我点击文本框

Javascript提供了哪些事件,可帮助我检测值拖放到文本框。

1 个答案:

答案 0 :(得分:0)

试试这个:

    $(document).ready(function() {
    var oldVal = '';
    $('.myTexbox').keypress(function (event) {
        var a = isDecimalNumber(event, this)
        if (this.value.match("^[0-9]*[.,]?[0-9]{0,2}$"))
            oldVal = this.value;
        return a;
    });
     $('.myTexbox').keyup(function (event) {
        if (!this.value.match("^[0-9]*[.,]?[0-9]{0,2}$")) {
            $(this).val(oldVal);   
        }
    });
    $('.myTexbox').on("drop", function(event) {
        event.preventDefault();  
        event.stopPropagation();
        if (!this.value.match("^[0-9]*[.,]?[0-9]{0,2}$")) {
            $(this).val(oldVal);   
        }
    });
});
function isDecimalNumber(eve, element) {
  var charCode = (eve.which) ? eve.which : event.keyCode
  if (charCode == 44 || charCode == 46 || charCode == 8 || (charCode > 48 && charCode < 57))
     return true; 
  return false;
}    

我认为这正是你所需要的。

我在JS Fiddle中测试了代码,它的工作方式与预期的一样。