jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 检测焦点是否是由按键或点击引起的大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在对特定表单元素使用焦点,以便知道用户何时向前标签或单击其他字段.

我需要知道这一点,因为ajax调用会在此之后立即启动并填充几个不同的字段(例如,输入有效的邮政编码,它会搜索数据库并返回城市).

现在,我的问题,ajax调用收到一个HTML响应,并在加载它时,导致表单失去当前的焦点.

我需要一种方法来保存焦点并在ajax调用后恢复它.

到目前为止,我已经完成了导航工作.它破坏了很多,并且还干扰了页面上其他内容的加载(例如对话框窗口).所以,我认为必须有一个更好的方法,这就是为什么我在这里.如果您需要更多信息,请与我们联系.代码如下.

祝一切顺利!

$('.DZipCode').focusout(function () {
      var ZipCode = $('.DZipCode').val();


    $.ajax({ // create an AJAX call...
        async: false,type: "POST",// GET or POST
        url: "/Home/SELEctZipCodeDataDesTination",// the file to call`
        data: { zipCode: ZipCode },success: function (responsE) { // on success.. 
            $(":input").focus(function() {
                var prevFocus;

                prevFocus = $(this).attr("id");
               $('#quotetab').html(responsE);
                $('#'+prevFocus).focus();
           // });               
        }  // end of success
    });  // end of .ajax

});

解决方法

我能想到的最简单的方法是在按下一个键时设置一个标志,然后只要你需要知道就检查标志.

var tabPressed = false;

$('input[type="text"],textarea')
    .keydown(function(E) { 
        var keyCode = e.keyCode || e.which; 

        tabPressed = (keyCode==9) ? true : false;
    })
    .focus(function() {
        tabPressed = false;
    });

那你可以做

if(tabPressed) {
//some stuff
}

你的ajax成功回调(或任何地方).

大佬总结

以上是大佬教程为你收集整理的jquery – 检测焦点是否是由按键或点击引起的全部内容,希望文章能够帮你解决jquery – 检测焦点是否是由按键或点击引起的所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。