当前位置: 首页 > 知识库问答 >
问题:

我可以从javascript中将字段标记为无效吗?

汤才捷
2023-03-14

通过阅读本文,我发现HTML5中引入了一些“有效”和“无效”输入值的伪类。

有没有办法从javascript中将输入字段标记为无效/有效?或者,我可以替代使用的验证方法吗?

共有3个答案

杜烨伟
2023-03-14

是否有一种方法,我可以从javascript标记一个输入字段为无效/有效?

不幸的是,不能在JavaScript中设置伪类的样式,因为它们不是真正的元素,它们在实际的DOM中不存在。

使用香草JavaScript,您将使用验证API。

在jQuery中,您可以简单地做到这一点,http://jsfiddle.net/elclanrs/Kak6S/

if ( $input.is(':invalid') ) { ... }

或者,我可以替代使用的验证方法吗?

如果你使用的是HTML5验证,那么就坚持使用标记。否则,可以使用$form禁用HTML5验证。attr('novalidate','novalidate')并使用JS验证字段,然后在需要的地方添加有效的无效的类。我制作了一个这样的插件来支持非HTML5浏览器。

郑俊彦
2023-03-14

编辑:有人澄清说,您正在为DOM寻找“有效”“无效”属性。

我将使用dom_object.set属性("is有效","true")为每个标记添加属性。您还可以有一个中央验证函数,它每次更新这些属性(并每次使用dom_object.get属性("is有效"))。

您可以在每次元素失去焦点时,或在您想要的任何时候运行此函数。

不太优雅,但不幸的是,现在javascript和HTML5没有“伪”支持。

如果我理解你的问题,你可以用Javascript进行验证。但是,请注意,绕过客户端验证非常容易,尤其是javascript验证。您永远不应该信任客户端数据,而应该始终在服务器端进行检查。

例如,我可以很容易地通过检查源代码找到元素ID,然后执行document.getElementById('some_id'). setAt0013('max',new_number)来更改max值(这是您链接中的条目之一)。

有很多种方法可以做到这一点,所以我将试着给你一个通用的习语。

您可以通过执行document.getElementById('form_element_id'). value来获取值(确保给表单一个发送到服务器的name和一个由javascript使用的id)。对于文本区域,您可以使用. innerHTML

然后你有一个变量中的值,有各种方法来检查它。

例如,您可以执行if(parseInt(my_值)

现在是验证部分:在表单标签中添加onken="返回validateForm(),其中validateForm()是执行所有检查的函数。如果有效,函数只返回true,否则返回false。这将覆盖默认的验证函数(默认情况下不做任何事情)。

所以在上面的例子中,//error将被return false替换。你也可以做其他事情;例如警告错误,然后返回false。您还可以使用javascript突出显示无效字段(不确定这是否是您所说的“从javascript将输入字段标记为无效/有效”)

当然,如果不想检查所有字段,只需在某些字段通过时返回true。再说一遍,你不应该依赖这一点,但如果你只是为了吓阻普通人,那么这是一个简单的解决方案。

郑高驰
2023-03-14

您可以使用customValidity函数来实现此目的。

如果向字段添加自定义有效性消息,它将变为无效。当您将消息设置为空字符串时,它将再次变为有效(除非由于其他原因无效)。

field.set自定义有效性("无效字段");将使该字段无效。

字段。设定有效期(“”)将使该字段有效,除非它未通过HTML5约束。

 类似资料:
  • 我是Spring Reactive Web的新手,我遇到了以下问题。我想创建一个微服务A,它的endpoint接受一个数字N,向微服务B发送N个请求(微服务B为每个请求返回一个字符串),将字符串包装成对象,将它们组合成一个List/Flux(?)并返回带有这些对象的JSON,比如: 我想为此使用一个功能endpoint。所以我尝试了以下方法(尽量简化): 所以,如果我在我的响应中使用Flux,我会

  • 对于我的Vuejs应用程序,我使用Vee-验证进行验证。目前,它将有效的URL(如)标记为无效。 这也发生在他们的样本上:http://vee-validate.logaretm.com/rules.html#rule-网址 如果您输入在他们的示例中,您将看到消息

  • 问题内容: 我有这个代码 我不一定总拥有三个书本价值。所以有时候,如果我不知道主题,位置或出版商。那我要让他们空着 但是如果有的话,我需要选择框进行选择。这样有可能吗 问题答案: 当然,只需为要保留为可选的每个字段添加即可

  • 我想将此字段标签从“名字和姓氏”更改为“显示姓名”。文档暗示这是不可能的,但也许我错过了什么。https://github . com/firebase/firebase ui-web # customizing-firebase ui-for-authentic ation 如果我不能改变它,我会通过

  • 可能重复: 在锚中放置div是否正确? 当我们编写某种“产品列表”时,您只需要一个链接,但它应该包含产品图像、产品名称、产品标题等。我们可以使用contain p或其他标签吗?是否存在跨浏览器问题? 我听说在html5中,一个标签可以包含p标签,但是仍然没有使用它的信心。 一些代码是这样的:

  • 问题内容: 假设我有以下CSS: 以后可以在JavaScript中以某种方式知道给定CSS属性的值是什么吗? 问题答案: 我认为您无法访问无效的属性名称,至少对我而言,它不适用于Chrome或Firefox。CSSStyleDeclaration只是跳过了无效属性。对于给定的CSS: 对象仅包含以下键: 但是,有趣的是,这是DOM-Level-2样式规范所说的: 尽管实现可能无法识别CSS声明块中