【问题标题】:Disable chrome/firefox tooltips on required field在必填字段上禁用 chrome/firefox 工具提示
【发布时间】:2016-10-28 05:03:03
【问题描述】:

我正在处理用户需要输入字段的角度表单验证(这是必需的)

为了进行必填字段验证,我使用了角度表单验证。使用 ng-required="ture",但不幸的是我在 chrome 浏览器上得到了工具提示。 (见下图)

如果我在输入标签中使用novalidate。验证不起作用, 那么如何在提交按钮点击时显示所有无效的输入字段“必填消息”?

Fiddler here

【问题讨论】:

  • novalidate 必须在表单元素上,而不是在输入标签上。请看我发布的答案
  • 但它只是跳过而不显示所需的消息。

标签: javascript html forms validation


【解决方案1】:

您可以向表单元素添加novalidate 属性以禁用浏览器验证。 JS Fiddle

【讨论】:

  • 如果你知道答案分享在这里,不要发布链接
  • @JishnuVS 谢谢!
  • 我想要浏览器验证,但我希望它静默失败。这将如何运作?
【解决方案2】:

novalidate 会解决您的问题,要在表单提交时显示错误消息,您可以使用在表单提交期间触发的form.$submitted 事件。

例如你的情况

 <input type="text" name="taskName" placeholder="Task Name" ng-model="tastName" ng-required="true" />
  <span class="error" ng-show="frm.taskName.$error.required && (frm.taskName.$touched ||  frm.$submitted)">Name is required</span>

Updated fiddle

【讨论】:

  • 但表单是先提交然后发布所需的消息。
  • 请检查更新的小提琴,所有你需要在控制器中检查一个有效的表格,希望它可以制作场景
  • 谢谢,有没有办法显示输入的边框在提交点击时无效...
  • 我已经做到了..没问题。看看我的回答:-)
【解决方案3】:

使用 ng-class 和 form.$submitted 得到了答案(感谢@Shailendra Sharma 的回答)

此逻辑将在提交点击时显示错误消息用红色边框装饰的输入字段,而没有任何 chrome 工具提示。

 <input type="text" ng-class="{'inputError': (frm.taskName.$error.required && (frm.taskName.$touched ||  frm.$submitted))}" name="taskName" novalidate placeholder="Task Name" ng-model="tastName" ng-required="true" />
        <span class="error" ng-show="frm.taskName.$error.required && (frm.taskName.$touched ||  frm.$submitted)">Name is required</span>

Fiddler

【讨论】:

    【解决方案4】:

    novalidate 是让浏览器停止验证的表单属性

    这里的文档解释它https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form

     <form name="frm" ng-submit="add()" novalidate>
          <input type="text" name="taskName" placeholder="Task Name" ng-model="tastName" ng-required="true" />
          <span class="error" ng-show="frm.taskName.$error.required && frm.taskName.$touched">Name is required</span>
          <!--{{ frm.taskName.$error }}-->
          <br />
          <label>estimation time:</label>
          <select ng-model="time" name="time" ng-options="t for t in NOTask" ng-required="true">
            <option value="" selected="selected">Please select</option>
          </select>
          <span class="error" ng-show="frm.time.$error.required && frm.time.$touched">Please select time</span>
          <br /> {{ frm.$valid }}
          <input type="submit" name="name" value="Add" />
    
        </form>
    

    【讨论】:

    • 那么我如何在提交点击时显示所有必填字段消息
    • 这只会阻止默认行为,基于用户的验证仍然可以正常工作
    • 我如何在提交按钮点击时显示所有无效的输入字段“必填消息”?
    • 你需要在 ng-submit 函数中处理
    • 如何添加?
    猜你喜欢
    • 2021-08-22
    • 2011-01-03
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多