如果验证失败,我正在使用jquery将焦点放在模糊的文本框上。但它在IE中工作但没有工作FF。有什么建议吗?
$("#inputBoxId").blur(function () {
if ($(this).val() < 10)
$("#inputBoxId").focus();
});
答案 0 :(得分:13)
看起来您需要根据此question使用setTimeout。由于您要立即将焦点放在元素上,因此您需要考虑元素首先离开焦点的时间。
$("#inputBoxId").blur(function() {
if ($(this).val() < 10) {
setTimeout(function() {
$("#inputBoxId").focus();
}, 100);
}
});
在jsfiddle上工作的示例,在chrome dev频道,firefox和IE8上进行了测试。
答案 1 :(得分:1)
val()
将返回字符串,而不是数字。尝试转换,它应该工作:
var value = parseInt($(this).val(), 10);
if (isNaN(value) || value < 10)
$("#inputBoxId").focus();
这也将处理非数字值。
答案 2 :(得分:0)
$(this).val().length
也会给出长度
$("#inputBoxId").blur(function () {
if($(this).val().length < 10 ){
$(this).focus();
}
});
答案 3 :(得分:0)
//页面可见性:
document.addEventListener('visibilitychange', function () {
if (document.hidden) {
// stop running expensive task
} else {
// page has focus, begin running task
}
});