Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择第一个空表单字段_Jquery_Validation_Forms - Fatal编程技术网

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;”