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

为什么我的“oninvalid”属性让模式失败?

东方河
2023-03-14

这个小小的HTML5密码字段在没有on无效属性的情况下工作得非常好(模式是:至少6个字符):

<form>
    <input type="password" name="user_password_new" pattern=".{6,}" required />      
    <input type="submit"  name="register" value="Register" />
</form>

请看这里的jsFiddle。

但是,当我添加一个oninvalid属性,当用户的输入不符合模式时,该属性会发出一条自定义错误消息,整个字段将永远无效,请参见此处的代码:

<form>
    <input type="password" name="user_password_new" pattern=".{6,}" oninvalid="setCustomValidity('Minimum length is 6 characters')" required />      
    <input type="submit"  name="register" value="Register" />
</form>

请看这里的jsFiddle。

你能找出错误吗?

共有3个答案

贝凯
2023-03-14

我喜欢这样使用:

<input type="email" name="Email" required oninvalid="setCustomValidity('ErrorMessage')"/>

并拔掉所有有效输入数据的插头

UPD,为了更好地工作,还有一件事:

    $("input").attr("onblur", "setCustomValidity('')");
    $("input").attr("oninput", "setCustomValidity(' ')");
郎长卿
2023-03-14

由于我遇到了同样的问题,下面是我的解决方案——经过测试并使用FF、Chrome、IE 10、Edge(2017年2月)。

<form>
<input pattern="1234" oninput="setCustomValidity(''); checkValidity(); setCustomValidity(validity.valid ? '' :'please enter 1234');">
<input type="email" required>
<input type="submit">
</form>
燕飞文
2023-03-14

如果使用setCustomValidity()设置值,则该字段无效。即设置一个非零长度字符串使浏览器考虑字段无效。为了考虑任何其他验证的影响,您必须清除自定义有效性:

<input type="password" name="user_password_new" pattern=".{6,}" required
   oninvalid="setCustomValidity('Minimum length is 6 characters')" 
   oninput="setCustomValidity('')" />
 类似资料:
  • 问题内容: 这个小的HTML5密码字段可以在没有oninvalid属性的情况下完美运行(该模式说:最少6个字符): 在这里查看jsFiddle 。 但是,当我添加一个oninvalid属性,当用户的输入不适合该模式时,该属性会发出自定义错误消息,整个字段永远不会有效,请参见此处的代码: 在这里查看jsFiddle 。 你能发现错误吗? 问题答案: 如果使用设置值,则该字段无效。设置非零长度的字符串

  • 我使用JavaFX Scene Builder1.1创建了一个FXML文件。默认情况下创建AnchorPane。为什么我不能修改resizable属性?

  • 适用套系这个li加了display:flex,列表的符号就没了,怎么能再显示出符号呢

  • 问题内容: 我有一个实体: 当我尝试保留这种类型的第一个实体时,它可以正常工作,但是当我尝试使用与已存储的实体相同的课程保存新的Student时,它将失败。这是错误: 我正在使用带有Hibernate和H2的Spring Data JPA作为数据库。 该应用程序创建了自己的数据库表: 那么,为什么会有独特的约束呢? 更新: 我看到Hibernate添加了约束: 我如何告诉Hibernate不要创建

  • 当我使用jsonschemavalidator测试验证时,模式如下: 和输入如下: 验证失败

  • 阿波罗查询是这样定义的: 我的架构: 我如何提出请求: UserLevelInput、RanksInput 和 PvpInput: 如果我在localhost:5005/graphql上进行这种变异,它将按预期工作: 此外,如果我提出请求(代码不在 /graphql),然后检查出Apollo开发工具的特定突变,我得到的Int,UserLevelIn的,RanksIn的和PpvIn的类型是未知的。A