gpt4 book ai didi

javascript - 在 Safari 中,使用 jQuery 的表单输入文本字段在显示警报后不会获得焦点。为什么?

转载 作者:行者123 更新时间:2023-11-30 06:49:12 25 4
gpt4 key购买 nike

我有一个 ASPX 网络表单。我使用 jQuery 来简化我的 Javascript。我使用 Javascript 验证脚本来验证每个表单字段的值。如果发生错误,我会弹出一个带有错误消息的警报。然后我将焦点转移到底层元素。

这是我尝试过的例子。

使用 jQuery:

var Form_FieldDef = function(name) {
this.name = name;
this.SetFocus = function() {
$('#' + this.name)[0].focus();
}
this.Validate = function() {
var isvalid = true;
if ( $.trim($('#' + this.name).val()) == '') {
alert("Your entry is empty");
this.SetFocus();
isvalid = false;
}
return isvalid;
}
}

这适用于 IE7、IE8、Opera、Chrome 和 Firefox。它不适用于 PC 上的 Safari 4。我没有 Mac。

所以我将 SetFocus 方法更改为此。

this.SetFocus = function() {
var fld = document.getElementById(this.name);
if (fld != null)
fld.focus();
}

这适用于 IE7、IE8、Opera、Chrome 和 Firefox。它不适用于 PC 上的 Safari 4。

我使用 VS 2008 调试器单步执行代码,并在底层元素上调用 focus 方法。

最佳答案

这是一种预感:尝试在超时例程中改变焦点:

this.setFocus = function() {
var self = this;
setTimeout(function() {
$(self).focus();
}, 1);
};

关于javascript - 在 Safari 中,使用 jQuery 的表单输入文本字段在显示警报后不会获得焦点。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827519/

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