symfony2 中的复选框验证

Posted

技术标签:

【中文标题】symfony2 中的复选框验证【英文标题】:Checkbox validation in symfony2 【发布时间】:2016-04-05 04:29:16 【问题描述】:

我正在 symfony2 中创建一个注册表单。我需要验证这个复选框,如果用户没有选中这个复选框,那么应该有一个客户端验证。我也使用了客户端验证,但它没有验证它。 这是我的注册表单类型。

$builder->add('check', 'checkbox', array(
                    'label'     => 'I agree the terms and conditions',
                    'required'  => false,
                    'mapped' => false,
                    'value'=>false,
                    'translation_domain' => 'FOSUserBundle'));

这是我的客户端 Java 脚本

var check = $("#fos_user_registration_form_check").val();
                    if(check!=1)
                    
                        $("#msgCheck").html('Check the Box').css('color','red').show();
                        $error=true;
                    else
                        $("#msgCheck").hide();
                        $error=false;
                    

【问题讨论】:

你为什么不直接设置'required' => true?让浏览器处理它?您将拥有 HTML5 验证以及服务器端。 【参考方案1】:

你能测试一下吗

if($("#fos_user_registration_form_check").is(':checked'))

    $("#msgCheck").html('Check the Box').css('color','red').show();
    $error=true;
 else 
    $("#msgCheck").hide();
    $error=false;

【讨论】:

【参考方案2】:

我要在这个表单上完成许多客户端验证,所以我所做的是,我在开始时将错误声明为 false,然后以类似的方式进行所有验证。否则错误在许多情况下都会发生,所以这是一个更好的解决方案。

  $error=false;
       if($("#fos_user_registration_form_check").is(':checked'))
        
            $("#msgCheck").html('Check the Box').css('color','red').show();
            $error=true;
         else 
            $("#msgCheck").hide();

        

【讨论】:

以上是关于symfony2 中的复选框验证的主要内容,如果未能解决你的问题,请参考以下文章

如何验证 laravel 中的复选框数组?

同一类中的 jQuery 复选框验证

验证 WooCommerce 结帐页面中的附加复选框字段

验证模板表单中的复选框列表(不是反应式表单)Angular 2

Angular2中的复选框组处理和验证

验证线性布局中的多个复选框