我有一些文本输入,当用户切换到下一个时,我正在验证这些输入。在显示警报后,我希望焦点保持在有问题的输入上。我似乎无法确定正确的语法让JQuery做到这一点。相反,以下代码显示警报,然后将重点放在下一个文本输入上。显示警报后,如何防止跳至下一个元素?
$('input.IosOverrideTextBox').bind({
blur: function(e) {
var val = $(this).val();
if (val.length == 0) return;
var pval = parseTicks(val);
if (isNaN(pval) || pval == 0.0) {
alert("Invalid override: " + val);
return false;
}
},
focus: function() {
$(this).select();
}
});
最佳答案
我不喜欢强制聚焦,但是难道您不能在模糊发生后就聚焦吗?
element.focus();
如果在模糊事件中执行此操作并非总是可行(我不确定确切时间是在实际模糊发生之前或之后触发的),那么冗余超时也可以:
setTimeout(function () { element.focus() }, 0)
。但是请不要这样做。哎呀,您也不应该对Web界面使用
alert
或任何形式的模式对话框。如何在表单字段中添加invalid
类,在其侧面放置一条消息,并在所有字段均有效之前禁用提交?这是一种侵入性较小的解决方案,它使我能够以最适合我的方式填写表格,而不是以最简单的方式填写表格。