【问题标题】:Symfony2 form validation SafariSymfony2 表单验证 Safari
【发布时间】:2015-12-06 18:10:09
【问题描述】:

好吧,我实际上在 Chrome、Firefox 和 IE 中测试了我的表单代码,但是当一个朋友在他的 Mac 中测试我的表单时,我发现必填字段不起作用,因为 Safari 不接受必填类。所以,在表单的最后,当我按下发送按钮时,我得到了数据库错误并且它崩溃了。

我搜索了 Symfony 文档,在表单类中找到了这段代码:

public function setDefaultOptions(OptionsResolverInterface $resolver) {
    $collectionConstraint = new Collection(array(
    'name' => array(
        new NotBlank(array('message' => 'Name should not be blank.')),
    )
    ));

    $resolver->setDefaults(array(
        'constraints' => $collectionConstraint
    ));
}

但它似乎什么也没做。我也把这个实体类:

/**
 * @Assert\NotBlank()
 */
public $name;

并且仍然得到错误。任何想法我做错了什么?谢谢!

【问题讨论】:

    标签: php html forms symfony safari


    【解决方案1】:

    Safari 的问题在于它可以识别 HTML5 必需的属性,但它不会阻止提交表单。您需要使用 javascript 来检查它。

    This post should help with that.

    【讨论】:

    • 这是正确的,但无论如何您仍然需要验证服务器端。 从不单独依赖客户端验证。
    • 他必须检查服务器端的表单是的,但他应该已经这样做了,因为可以解决 HTML5 验证问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多