【问题标题】:How to disable html5-validation for specific buttons in symfony 2.3如何在 symfony 2.3 中禁用特定按钮的 html5 验证
【发布时间】:2013-06-08 18:12:56
【问题描述】:

我有一个带有三个按钮的表单。一种用于添加对象,一种用于删除,一种用于编辑对象。

我现在想使用 Symfony 2.3 中引入的新表单按钮在添加按钮中禁用 html5-validation。这是可能的还是我必须创建一个新的按钮类型?我怎么能这样做?

【问题讨论】:

    标签: php html validation symfony symfony-forms


    【解决方案1】:

    您需要做的就是将 html 属性 novalidate 或 novalidate="novalidate" 添加到元素中。您可以按照与从树枝模板的表单类型中添加任何其他属性相同的方式执行此操作。例如:

    {{ form_widget(form.add, { 'attr': {'novalidate': 'novalidate' }}) }}
    

    实际上,再次阅读您的问题,我不完全确定您要对按钮进行哪种验证。您必须将 novalidate 放在您不想验证的所有元素上。

    您也可以将 novalidate 放在表单本身上:

    <form action="demo_form.asp" novalidate>
    

    【讨论】:

    • 按钮上的 novalidate 点是禁用所有其他字段的表单验证。例如,当有提交按钮和删除行按钮时,您可能希望删除具有无效字段的行,但您只想提交一个有效的表单。 (不幸的是,这不是novalidate 所做的。)
    【解决方案2】:

    要禁用表单验证,请在提交按钮上使用formnovalidate

    例如:

    <div class="row">
      <input type="email">
      <input formnovalidate type="submit" value="Remove row">
    </div>
    <div class="row">
      ...
    </div>
    <input type="submit" value="Submit rows">
    

    注意formnovalidate在删除按钮上,所以即使它旁边的字段包含无效的电子邮件,它仍然可以被删除。真正的提交按钮没有formnovalidate属性,所以在实际提交表单之前,所有的电子邮件必须是有效的。

    【讨论】:

    • 搜索了几个小时。谢谢!
    • 你是说输入还是输入? (在上面的代码示例中)
    • @JosephAstrahan 当然应该是“输入”。只是一个小错字。固定。
    猜你喜欢
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2012-01-07
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多