当前位置: 首页 > 面试题库 >

HTML5表单必填属性。设置自定义验证消息?

邵和硕
2023-03-14
问题内容

我有以下HTML5表单:

<form id="form" onsubmit="return(login())">

<input name="username" placeholder="Username" required />

<input name="pass"  type="password" placeholder="Password" required/>

<br/>Remember me: <input type="checkbox" name="remember" value="true" /><br/>

<input type="submit" name="submit" value="Log In"/>

目前,当我将两个都空白时按Enter键时,会出现一个弹出框,提示“请填写此字段”。如何将默认消息更改为“此字段不能为空”?

还请注意,类型密码字段的错误消息很简单*****。要重新创建此名称,请为用户名指定一个值,然后单击“提交”。

我正在使用Chrome 10进行测试。请同样做


问题答案:

用途setCustomValidity):

document.addEventListener("DOMContentLoaded", function() {
    var elements = document.getElementsByTagName("INPUT");
    for (var i = 0; i < elements.length; i++) {
        elements[i].oninvalid = function(e) {
            e.target.setCustomValidity("");
            if (!e.target.validity.valid) {
                e.target.setCustomValidity("This field cannot be left blank");
            }
        };
        elements[i].oninput = function(e) {
            e.target.setCustomValidity("");
        };
    }
})

我已按照@itpastorn在评论中的建议,从Mootools更改为VanillaJavaScript,但如有必要,您应该可以设计出等效的Mootools。

我在这里更新了代码,其setCustomValidity工作方式与我最初回答时所了解的略有不同。如果setCustomValidity设置为空字符串以外的任何其他值,则将导致该字段被视为无效;因此,您必须在测试有效性之前清除它,而不能只是设置它而忘记。

正如下面@thomasvdb的注释中指出的那样,您需要在某些事件之外清除自定义有效性,invalid否则可能需要通过oninvalid处理程序进行额外的清除操作。



 类似资料:
  • 问题内容: 必填字段自定义验证 我有一种表单,其中包含许多输入字段。我已经进行了html5验证 当我提交表单而不填写此文本框时,它显示默认消息,例如 有人可以帮我编辑此消息吗? 我有一个JavaScript代码对其进行编辑,但无法正常工作 电子邮件自定义验证 我有以下HTML表格 我想要的验证消息。 必填字段: 请输入电子邮件地址 错误的电子邮件: ‘testing @ .com’不是有效的电子邮

  • 我有一个表单,有许多输入字段。我已经对html5进行了验证 当我提交表单时,没有填写这个文本框,它显示默认消息,如 有人能帮我编辑这条消息吗? 我有一个javascript代码来编辑它,但它不工作 我有以下HTML表单 验证消息我想要喜欢。 必填字段:请输入电子邮件地址 错误的电子邮件:测试@. com不是一个有效的电子邮件地址。 我试过这个。 此功能无法正常工作,您是否有其他方法来执行此操作?我

  • 具有自定义验证的基本HTML5表单。如果提交的值不是数字,浏览器应显示错误消息“字段必须是数字”如果输入“abc”并按submit(或按enter键),该字段将标记为无效,但不会显示错误消息。再次按submit(或按enter)将显示消息。这种双重提交行为出现在Windows和OS X上最新版本的Firefox、Chrome、Safari和IE上。您会注意到默认的“此字段是必需的…”消息在第一次提

  • HTML5 表单属性 HTML5 新的表单属性 HTML5 的 <form> 和 <input>标签添加了几个新属性. <form>新属性: autocomplete novalidate <input>新属性: autocomplete autofocus form formaction formenctype formmethod formnovalidate formtarget heigh

  • HTML5 新的表单属性 HTML5 的 <form> 和 <input>标签添加了几个新属性. <form>新属性: autocomplete novalidate <input>新属性: autocomplete autofocus form formaction formenctype formmethod formnovalidate formtarget height 与 width l

  • 我正在使用Hibernate@NotNull验证器,我正在尝试创建自定义消息来告诉用户哪个字段在空时产生了错误。类似这样的东西: (这将在我的ValidationMessages.properties文件中)。 其中,{0}应该是通过以下方式传递给验证程序的字段名: 我有办法做到吗?