【发布时间】:2020-09-23 17:26:25
【问题描述】:
当我有一个表单和一些约束规则时,比如max value 或LessThanOrEqual,我如何显示这个规则条件以便用户知道输入接受什么数据格式?
我想显示在验证失败后(表单提交后)出现的相同消息始终可见,在各自<input>附近的某个地方@
更多信息
我在各自的buildForm 中有这个,你可以看到LessThanOrEqual 有动态的可能值。所以最好总是让用户知道可以输入的最大值。
$builder
->add('amount', null, [
'constraints' => [
new LessThanOrEqual($maxValue)
]
])
我知道我可以使用 help 属性,但是再次定义翻译文本会有点多余,因为所有的验证规则都已经设置好了。因此,最好只显示相同的消息,该消息将在提交验证失败的表单后出现。所以在我的例子中:
此值应小于或等于 {{ compatible_value }}
谢谢
编辑: 这将通过实时 javascript 验证部分解决,该验证将实时验证并通知用户,只需使用一些 javascript (jQuery,...) 插件。
但是,在输入旁边显示一条简单的文本消息(通知验证规则)也很好 - 此 javascript 解决方案无法解决。
编辑 2: 在我的 twig 视图中只是基本的,没什么特别的:
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn btn-success">{{ button_label|default('Save'|trans) }}</button>
{{ form_end(form) }}
【问题讨论】:
-
帮助存在,你应该使用它。
-
您可以读取约束上
message属性的值,但如果您只是将其分配为help文本我不认为,您将不会被插值自己做。 -
您可以编辑您的问题并添加查看页面的代码吗? (你有
form_start...form_end的代码) -
我编辑了帖子并从树枝视图添加了代码。
标签: php forms symfony validation twig