Jul*_*lie 1 maxlength symfony twig
我正在使用 form_widget 来渲染我的字段,我想要的是将数字限制为 5\n(不要让人们输入超过 8 位数字),比如 html 中的 maxlengh
\n\n我努力了 :
\n\n {{ form_widget(form.telMobile, {\'attr\':{\'class\': \'form-control\',\'placeholder\' :\'number - 8 digits\', \'size\' : \'8\' }}) }}\n\n {{ form_widget(form.telMobile, {\'attr\':{\'class\': \'form-control\',\'placeholder\' :\'number - 8 digits\', \'maxlength\' : \'8\' }}) }}\nRun Code Online (Sandbox Code Playgroud)\n\n如何在验证之前限制位数?
\n\n更新:仍然无法工作
\n\n这是我的表单生成器
\n\n->add(\'telMobile\', null,array(\'label\' => \'common.label.telmobile\', \'required\' => true ,\'attr\' => [\'pattern\' => \'/^[0-9]{8}$/\']))\nRun Code Online (Sandbox Code Playgroud)\n\n我也尝试将模式添加到小部件中:
\n\n {{ form_widget(form.telMobile, {\'attr\':{\'class\': \'form-control\',\'placeholder\' :\'T\xc3\xa9l\xc3\xa9phone mobile - 8 chiffres\', pattern\' : \'/^[0-9]{8}$/\' }}) }}\nRun Code Online (Sandbox Code Playgroud)\n\n正如你在图片中看到的,我仍然可以输入超过 8 位数字
\n\n\n由于您将传递null给 作为FormBuilder您的字段类型,Symfony 的类型猜测系统正在启动。它尝试根据您的字段的定义猜测适当的表单控件。从屏幕截图中的箭头来看,它解析为NumberType,并且数字字段没有属性maxlength。
要解决此问题,您必须将其显式设置为TextType:
->add('telMobile', TextType::class, array(
'label' => 'common.label.telmobile', 'required' => true,
'attr' => ['pattern' => '/^[0-9]{8}$/', 'maxlength' => 8])
)
Run Code Online (Sandbox Code Playgroud)
然而,这将带来其自身的权衡:现在输入的长度将受到限制,但用户将能够输入字母。如果这不是我们所希望的,并且您想拒绝无效输入,则必须使用javascript 解决方案。
| 归档时间: |
|
| 查看次数: |
12460 次 |
| 最近记录: |