如何使用jQuery以表单中的特定字段为目标?

如何使用jQuery以表单中的特定字段为目标?,jquery,Jquery,我希望以表单中的第一个输入[type=text]元素为目标,如果表单不包含这样的元素,则以第一个输入[type=number]元素为目标 如何做到这一点 到目前为止,我得到的是: $('input[type=text]:first, input[type=number]:first').focus(); 谢谢您的帮助。您可以使用.first方法 您可以使用.first方法 您也可以使用:第一种类型 $('input[type="text"]:first-of-type, input[type=

我希望以表单中的第一个输入[type=text]元素为目标,如果表单不包含这样的元素,则以第一个输入[type=number]元素为目标

如何做到这一点

到目前为止,我得到的是:

$('input[type=text]:first, input[type=number]:first').focus();
谢谢您的帮助。

您可以使用.first方法

您可以使用.first方法


您也可以使用:第一种类型

$('input[type="text"]:first-of-type, input[type="number"]:first-of-type').focus();

您也可以使用:第一种类型

$('input[type="text"]:first-of-type, input[type="number"]:first-of-type').focus();

伙计,选择器的行为就像css中一样,这样,如果一个故障切换选择器不存在,就不能有另一个。 如果是这样的话,您必须使用

if (!$('form input[type=text]:first').size()){
  $('form input[type=text]:first').focus();
}else{
  $('form input[type=number]:first').focus();
}
您可以保存选择器结果,以避免在focus函数中再次进行dom搜索,如下所示:

first_result = $('form :input[type=text]:first')

伙计,选择器的行为就像css中一样,这样,如果一个故障切换选择器不存在,就不能有另一个。 如果是这样的话,您必须使用

if (!$('form input[type=text]:first').size()){
  $('form input[type=text]:first').focus();
}else{
  $('form input[type=number]:first').focus();
}
您可以保存选择器结果,以避免在focus函数中再次进行dom搜索,如下所示:

first_result = $('form :input[type=text]:first')

代码的问题在于,您正在选择页面上的第一个输入[type=text]和输入[type=number]元素。这就是,在jQuery选择器中的含义

您需要做的是检查输入[type=text]。如果不存在,则使用输入[type=number]。所以你需要一个条件语句

解决方案:


这里是jsfiddle:

代码的问题是您在页面上同时选择了第一个input[type=text]和input[type=number]元素。这就是,在jQuery选择器中的含义

您需要做的是检查输入[type=text]。如果不存在,则使用输入[type=number]。所以你需要一个条件语句

解决方案:


这是JSFIDLE:

当您删除*:'时会发生什么?是的,我认为您不需要*:我也会去掉整个表单*:因为输入总是以表单的形式出现。这很奇怪,因为您试图集中两个输入-为什么?是的,您是对的。我还不如把这些都扔掉。问题是第二个选择器似乎覆盖了第一个选择器。当你删除*:'时会发生什么?是的,我认为你不需要*:我也会去掉整个表单*:因为输入总是在表单中这很奇怪,因为你试图集中两个输入-为什么?是的,你是对的。我还不如把这些都扔掉。问题是第二个选择器似乎覆盖了第一个选择器。您需要从选择器中删除“*:”。您需要从选择器中删除“*:”。