【发布时间】:2017-04-20 20:32:15
【问题描述】:
我正在做一些 JQuery 验证,如果验证失败,我想防止用户离开存在验证问题的元素(使用 $(this).focus().select())。作为一些用户反馈,我还想使用 CSS 将其他输入框变灰。 (即在问题解决之前,所有其他输入框都是灰色的。)
这在 Chrome 中运行良好,但在 IE 中它只会使 next 输入变灰,而不是当我将焦点返回到原始输入时所有这些输入。 (如果我删除 $(this).focus().select() 样式按预期工作,但光标没有“锁定”到输入。)
如何确保跨浏览器的一致性?
我使用的代码是:
$(".TimeEntry").blur(function(){
if ($(this).val()){
$('input').not(this).addClass('disabledClass');
$(this).focus().select();
} else {
$('input').not(this).removeClass('disabledClass');
}
});
(出于演示目的,我所做的所有“验证”都是确保输入框中没有任何内容。任何输入都将无法通过验证。)
【问题讨论】:
-
非常好的问题,似乎是
IE中的一个错误。 -
这确实有效。但是,没有
css以这种方式使用 - jsfiddle.net/6g4rkcme/7 -
感谢@RichardMauritz。我开始使用 attr('disabled') 但这导致了另一个问题,因为它导致 Tabbing / Entering 在输入之间移动:stackoverflow.com/questions/43501430/…
-
怎么样:jsfiddle.net/6g4rkcme/10 标签仍然有效,而不是
input再次为空。 -
也试过了。问题是我的验证实际上更复杂 - 它必须允许输入多个字符,并且我不希望它在用户提交之前触发。但是...也许我可以通过在 keyup 上测试 Tab / Enter 来尝试
标签: javascript jquery validation internet-explorer