【问题标题】:Conditional rules for HTML5 form validationHTML5 表单验证的条件规则
【发布时间】:2012-04-27 07:31:05
【问题描述】:

我想知道是否可以根据其他元素状态设置“必需”元素。例如,假设我有一个输入元素,当且仅当用户选中一个特定的复选框时,我希望它是“必需的”。首先,这是否可以在不使用 JavaScript 的情况下完成?其次,如果我们使用 JavaScript,当然可以在用户选中该复选框时设置规则/验证,但是关于默认浏览器验证错误的一致性呢?单击复选框后,将“必需”属性添加到元素是否“正确”?我在这里看不到替代品。您对此有何看法?

【问题讨论】:

    标签: html webforms


    【解决方案1】:

    我认为没有 javascript 就无法做到这一点。

    使用 javascript,您可以轻松地做到这一点。

    我只会在单击复选框后添加required 属性。

    事实上,我会将其设为toggled 部分,以便用户可以取消选中和取消要求输入。

    但是,我不会依赖浏览器对required 属性的实现。相反,我会使用一些 CSS(突出显示、动画、显示一些文字)创建自己需要的通知。

    【讨论】:

    • “但是,我不会依赖浏览器对所需属性的实现” - 我同意!我在想,如果我使用 JavaScript,我可以解决我的问题,但是,如果 JavaScript 被禁用(只是假设..),那么我将对某些字段进行浏览器默认表单验证,但对其他字段则没有。除非(我之前应该提到这一点)我在 HTML 中有“更新”,这将使用 JavaScript 删除,这意味着没有 JavaScript 将只有服务器端验证..
    【解决方案2】:

    当不可用时,您可以使用 polyfill 模拟原生验证:
    https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

    【讨论】:

    • 可能有一些脚本,但是如果 JS 被禁用,您将对某些字段进行验证,而不是对其他字段进行验证..
    • 无论如何,您必须进行服务器端验证。而且你必须接受这样一个事实,即 JS 可以被禁用,并且 polyfill 在这种情况下不起作用。但它只能提升用户体验,何乐而不为呢?
    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多