Javascript 指向验证后的第一个字段
我有一个网页,其中有复选框、输入字段、下拉列表等 使用javascript检查强制条件。如果有人未能填写这些字段,请按“下一步”按钮验证错误弹出窗口 现在我想实现的是,当有人未能在必填字段中输入信息时,光标应该转到导致错误的第一个字段Javascript 指向验证后的第一个字段,javascript,html,jsp,Javascript,Html,Jsp,我有一个网页,其中有复选框、输入字段、下拉列表等 使用javascript检查强制条件。如果有人未能填写这些字段,请按“下一步”按钮验证错误弹出窗口 现在我想实现的是,当有人未能在必填字段中输入信息时,光标应该转到导致错误的第一个字段 有人能建议我怎么做吗?这一行将把页面的焦点放在您指定的元素上。您应该能够在验证检查中实现这一点,以关注坏元素 document.getElementById(“ID_Of_bad_字段”).focus()此行将把页面焦点放在您指定的元素上。您应该能够在验证检查中实
有人能建议我怎么做吗?这一行将把页面的焦点放在您指定的元素上。您应该能够在验证检查中实现这一点,以关注坏元素
document.getElementById(“ID_Of_bad_字段”).focus()代码>此行将把页面焦点放在您指定的元素上。您应该能够在验证检查中实现这一点,以关注坏元素
document.getElementById(“ID_Of_bad_字段”).focus()代码>为每个无效字段添加一个类(类似于输入错误
)。然后使用类似于:
var errors = document.querySelectorAll(".input-error");
if (errors.length > 0) {
errors[0].focus();
}
下面是一个例子:
这实际上完全取决于代码的结构、验证的方式、验证的实际操作以及HTML是什么
同时,如果您正在执行类似于我的示例的操作,那么最好跟踪第一个输入,并记录一个错误,然后在验证结束时跟踪它。大概是这样的:
更新:
Bergi指出,最好使用querySelector
(而不是querySelectorAll
),因为您只查找有错误的第一个输入。下面是一个更新:
var error_input = input_area.querySelector(".input-error");
if (error_input !== null) {
error_input.focus();
}
以下是querySelector
:注意
之所以使用“”.input error“
,是因为它是CSS类选择器,会在特定区域中找到第一个(如果有的话)元素,该元素的类为“input error”。为每个无效字段添加一个类(类似于input error
)。然后使用类似于:
var errors = document.querySelectorAll(".input-error");
if (errors.length > 0) {
errors[0].focus();
}
下面是一个例子:
这实际上完全取决于代码的结构、验证的方式、验证的实际操作以及HTML是什么
同时,如果您正在执行类似于我的示例的操作,那么最好跟踪第一个输入,并记录一个错误,然后在验证结束时跟踪它。大概是这样的:
更新:
Bergi指出,最好使用querySelector
(而不是querySelectorAll
),因为您只查找有错误的第一个输入。下面是一个更新:
var error_input = input_area.querySelector(".input-error");
if (error_input !== null) {
error_input.focus();
}
以下是querySelector
:注意
之所以使用“”.input error“
,是因为这是CSS类选择器,它会在特定区域中找到第一个(如果有)元素,该元素的类为“input error”。您可以循环遍历每个字段,然后在第一个空的焦点集中。以及显示空字段结果。是的,使用.focus()
。请向我们展示您的代码(验证和弹出),以便我们可以告诉您如何获得第一个输入。您可以在每个字段中循环,然后在第一个空的焦点上循环。以及显示空字段结果。是的,使用.focus()
。请向我们展示您的代码(验证和弹出),这样我们就可以告诉您如何获取第一个输入。@Bergi:否则您将如何获取第一个输入?document.querySelector()
?在看到您的评论之前,我正在使用另一个选项进行编辑。对我来说,我查询的原因是,在这种情况下,事物是分开的,以至于验证发生在它自己的函数中,或者发生在一些无法控制的事情中。编辑:不知道你具体指的是什么:)@Bergi Well-crap。我总是忘记那件事。谢谢你(谢谢你)真是太好了helpful@Bergi:否则您将如何获得第一个?document.querySelector()
?在看到您的评论之前,我正在使用另一个选项进行编辑。对我来说,我查询的原因是,在这种情况下,事物是分开的,以至于验证发生在它自己的函数中,或者发生在一些无法控制的事情中。编辑:不知道你具体指的是什么:)@Bergi Well-crap。我总是忘记那件事。谢谢你谢谢你这很有帮助