我正在使用一个包含许多文本框来验证的表单。我正在使用bValidator插件。我想要的是,当验证错误时,焦点应该保留在该文本框上。不应该移动到下一个文本框。
代码看起来像这样
$(document).ready(function () {
$($("form:first :input")[0]).focus();
var options = {
errorClass:"txtbox-error",
validClass:"txtbox-success",
validateOn:"focusout",
onAfterElementValidation: function(element){
var elt=element.attr('id');
$("#" + elt).focus();
}
};
$('#fValidation').bValidator(options);
$('#name').focus(function(){
});
});
提前致谢...:)
答案 0 :(得分:1)
您需要为blur
事件指定一个函数。我敲了一个例子(也可以在this JSFiddle看到)
<input type="text" id="text1"></input>
<input type="text" id="text2"></input>
....
$(document).ready(function(){
$("#text1").blur(function(evnt){
if ($(this).text != "1"){
event.preventDefault();
alert("Must be 1");
$(this).focus();
}
});
});
但是,要小心!考虑可用性的角度。如果用户想要导航到完全不同的地方怎么办? (即远离您的网站)如果他们专注于您的文本框,那么他们将被迫输入有效值,即使他们不想!