仅当鼠标未超过输入字段时,JQUERY键盘功能响应

时间:2015-01-31 21:19:57

标签: javascript jquery html

我的键盘功能有问题

我有一个订购表格,其中包含x个项目,其中一些分组如下:

第1项 - 第1组 第2项 - 第1组

分组的项目,有2个输入字段,1个隐藏和1个可见,我正在尝试做的是将隐藏输入的值更改为可见输入的相同值。

我的问题是价值只会随时变化,当输入不再集中时,有什么方法可以做,当焦点输入的值发生变化时,它会立即改变吗?

继承人我是怎么做的:

    $('.item .quantity').on("change paste keyup", function(event) {
        var crr_item = $(this).parents(".item"),
            quantity = $(this).val(),
            items = crr_item.parent().children(".item"),
            group = false;
        if(crr_item.hasClass('group1'))
            group = 'group1';

        else if(crr_item.hasClass('group2'))
            group = 'group2';


        if(crr_item.hasClass('group1_hover'))
            group = 'group1';

        else if(crr_item.hasClass('group2_hover'))
            group = 'group2';

        for(var i = items.index(crr_item)-1; i >= 0; i--) {
            var item = items.eq(i);
            if(!item.hasClass(group)) break;
            item.find('.quantity').val(quantity);
            calc_sum_eu(item);
        }
        calc_sum_eu(crr_item);
        for(var i = items.index(crr_item); i < items.length; i++) {
            var item = items.eq(i);
            if(!item.hasClass(group)) break;
            item.find('.quantity').val(quantity);
            calc_sum_eu(item);
        }

    });

1 个答案:

答案 0 :(得分:1)

尝试在其上添加一个标志,以检查它是否有焦点

var isFocused = false;

$('.item .quantity').on("focus", function(event) {
  isFocused = true;
});

$('.item .quantity').on("blur", function(event) {
  isFocused = false;
});

然后只需在keyup事件中添加isFocused变量即可验证。