gpt4 book ai didi

jquery - 检测焦点是否由按键或点击引起

转载 作者:行者123 更新时间:2023-12-03 23:03:58 24 4
gpt4 key购买 nike

我目前正在特定表单元素上使用 focusout,以便了解用户何时向前切换或单击不同的字段。

我需要知道这一点,因为在此之后会立即启动 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 - 检测焦点是否由按键或点击引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com