Jquery 选择第一个空表单字段
我通过以下方法签入一个表单中的空值Jquery 选择第一个空表单字段,jquery,validation,forms,Jquery,Validation,Forms,我通过以下方法签入一个表单中的空值 $("#reservationForm").find("input[type=email], input[type=tel], input[type=text]").filter(function(){ if($(this).val() == ""){ $(this).css("border","solid 1px red").after('Please fill in your '+this.id+'');
$("#reservationForm").find("input[type=email], input[type=tel], input[type=text]").filter(function(){
if($(this).val() == ""){
$(this).css("border","solid 1px red").after('Please fill in your '+this.id+'');
f.preventDefault();
}
现在我想提高可用性,把焦点放在第一个空字段上,但这就是问题所在。我尝试了以下所有方法,但每次只有最后一个空字段获得焦点
$(this).eq(0).focus();
$(this:first).focus();
$(this:first-child).focus();
如何将焦点自动设置为第一个空字段?您需要将其放在末尾,在全局之后,如下所示:
$("#reservationForm").find("input[type=email], input[type=tel], input[type=text]").filter(function(){
if($(this).val() == ""){
$(this).css("border","solid 1px red").after('Please fill in your '+this.id+'');
f.preventDefault();
return true;
}
}).first().focus();
通过这种方式,您可以获得与过滤器匹配的元素的数量。返回true
很重要,因为在调用后,集合中只剩下那些空的元素…当前您将其用作更多的调用
它当前将其设置为最后一个的原因是,
此
是您迭代时的每个元素,因此它将聚焦所有元素,最后运行的是具有焦点的元素…相反,您希望获得空的集合并聚焦其中的第一个元素。您需要将其放置在末尾,在整体,像这样:
$("#reservationForm").find("input[type=email], input[type=tel], input[type=text]").filter(function(){
if($(this).val() == ""){
$(this).css("border","solid 1px red").after('Please fill in your '+this.id+'');
f.preventDefault();
return true;
}
}).first().focus();
通过这种方式,您可以获得与过滤器匹配的元素的数量。返回true
很重要,因为在调用后,集合中只剩下那些空的元素…当前您将其用作更多的调用
它当前将其设置为最后一个的原因是,
此
是您迭代时的每个元素,因此它将聚焦所有元素,最后运行的是具有焦点的元素…相反,您希望获得空的集合并聚焦其中的第一个元素。在:f.preventDefault()中,“f”代表什么@Milchepaten-可能来自问题中显示的外部事件处理程序(这是代码的一个子集)。它将是传递给处理程序的事件,例如代码>谢谢你的回复。我只是不知道“f”来自何处,因为:“filter(function(){”没有事件处理程序代码;;“f”在:f.preventDefault();??@MilchePatern中代表什么?可能来自问题中显示的外部事件处理程序(这是代码的子集)。它将是传递到处理程序中的事件,例如。单击(函数(e){e.preventDefault();});
谢谢您的回复。我只是不知道“f”来自何处,因为:“filter(函数(){”没有事件处理程序的ticker;”