我有一个搜索文本字段和搜索按钮,当在文本字段中使用默认文本单击按钮时,或者为空值时,会弹出警报并将焦点设置回搜索文本字段。这适用于所有主流浏览器,但不适用于Safari。
我甚至在没有jquery的情况下尝试过它,但是没有用。当焦点落在搜索文本字段上时,我有另一个jQuery函数,就是这个问题。
将重点放在搜索文本上的代码是:
if (defaults.keyword == SEARCH_TIP || defaults.keyword == '') {
alert(SEARCH_NULL);
$('#store_search_keyword').focus();
return false;
}
焦点代码是:
var search_dom = $('#store_search_keyword');
var search_text = search_dom.val();
search_dom.focus(function(){
if ($(this).val() === SEARCH_TIP) {
$(this).val('');
}
});
感谢任何帮助,谢谢..
答案 0 :(得分:2)
您应该调用本机DOM focus()
方法,如下所示:
document.getElementByID('store_search_keyword').focus();
答案 1 :(得分:0)
在Safari中无效。
http://whatsthepointy.blogspot.com/2010/05/safari-focus-and-popup-alerts.html
问题是由处理程序中的“alert()”引起的。在警报框被清除后,Safari没有意识到它的主窗口重新获得焦点,并且当Safari认为它不是专注的应用程序时,它不会关注任何上的.focus()
调用。