【问题标题】:HTML5 Required attribute not enforced on FormObject.submit()HTML5 必需属性未在 FormObject.submit() 上强制执行
【发布时间】:2011-10-08 19:23:11
【问题描述】:

HTML5 使强制输入具有值变得很容易:哇!这在 .NET Web 应用程序中会很棒。我快速实现了这一点,并注意到了一些有趣的事情。我新要求的输入字段是在单击提交按钮时强制执行的,并从使用浏览器的 enter-submits-the-form 功能的表单控件进行输入。当控件调用 __doPostback(最终调用 form.submit())时,我的新要求的输入不会被强制执行。

这是不对的!火狐怎么了?!但是,这就是它在 Chrome 中的工作方式,所以要么它们都错了,要么它们都错了,这是巧合。

那么谁能告诉我为什么这样做有意义?似乎这个简洁的属性永远不会在 .NET Web 应用程序中使用,因为提交表单的唯一其他方法是在浏览器不处理它时调用 __doPostback,这会导致所需的验证有时会发生。但在其他时候这是有道理的,例如在将用户导航到另一个页面之前将链接设置为回发到表单时:我们不希望用户在他们认为他们只是在导航离开时被卡住。

【问题讨论】:

    标签: asp.net forms html submit required


    【解决方案1】:

    我不能告诉你,为什么这是有道理的,但 FF 和 Chrome 对这种行为是正确的。如果您想对此进行验证,您必须触发提交按钮点击。

    html5 验证还有一个奇怪的地方:checkValidity 方法不会调用原生验证 ui(在 Opera 中会调用,但这是违反规范的),尽管它会触发 invalid 事件。使用编程 API 来显示验证 ui 确实是一件很棒的事情,但用户可以看到它的唯一方法是通过交互式验证。

    【讨论】:

    • 它仅通过单击提交按钮显示并且没有用于触发验证 UI 的编程 API 的事实使得这个必需的属性看起来非常破碎且没有吸引力。不过谢谢!如果我的名声不是那么小,我会“提升”你的帖子。
    猜你喜欢
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2013-06-30
    相关资源
    最近更新 更多