- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试将render an error message
关联到repeated password field
时遇到了一个问题。问题是,如果我按以下方式实现 Twig ,则invalid_message
不会被渲染,
{{ form_start(form, {'attr': {'class': 'form-horizontal', 'role': 'form', 'novalidate': 'novalidate'}}) }}
<div class="form-group {% if form.password.vars.errors|length > 0 %}has-error{% endif %} {% if form.password.vars.required == 'true' %}required{% endif %}">
{{ form_label(form.password.first, "Password") }}
<div class="col-sm-8">
{{ form_widget(form.password.first) }}
<span class="help-block">{{ form_errors(form.password) }}</span>
</div>
</div>
<div class="form-group {% if form.password.vars.errors|length > 0 %}has-error{% endif %} {% if form.password.vars.required == 'true' %}required{% endif %}">
{{ form_label(form.password.second, "Confirm password") }}
<div class="col-sm-8">
{{ form_row(form.password.second) }}
</div>
</div>
........
form_row
,
{{ form_start(form, {'attr': {'class': 'form-horizontal', 'role': 'form', 'novalidate': 'novalidate'}}) }}
<div class="form-group {% if form.password.vars.errors|length > 0 %}has-error{% endif %} {% if form.password.vars.required == 'true' %}required{% endif %}">
{{ form_label(form.password.first, "Password") }}
<div class="col-sm-8">
{{ form_row(form.password.first) }}
<span class="help-block">{{ form_errors(form.password) }}</span>
</div>
</div>
<div class="form-group {% if form.password.vars.errors|length > 0 %}has-error{% endif %} {% if form.password.vars.required == 'true' %}required{% endif %}">
{{ form_label(form.password.second, "Confirm password") }}
<div class="col-sm-8">
{{ form_row(form.password.second) }}
</div>
</div>
........
span
实际上在文本框下方),并且也未突出显示该文本框。我尽力解决了这个问题,但是没有运气。如果您的专家可以提供任何专家指导来解决此问题,我将非常感谢。 :)
$builder->add( 'password', 'repeated', array( 'type' => 'password',
'required' => true,
'invalid_message' => ErrorMessages::PASSWORDS_DONOT_MATCH,
'options' => array('attr' => array('class' => 'password-field form-control')),
'first_options' => array('label' => false,
'label_attr'=>array('class'=>'col-sm-3 control-label')),
'second_options' => array('label' => false,
'label_attr'=>array('class'=>'col-sm-3 control-label'))));
最佳答案
解决方案很简单,因此会发布此消息,以防将来有人遇到此问题。解决方案是使用forms_row
渲染字段,例如:{{ form_row(form.password.first) }}
,并将'error_bubbling' => true
包括到要显示错误的字段中。包括此问题解决了字段突出显示和错误消息放置的问题,在我的情况下,我在first password text box
下显示了错误。
工作示例
twig
{{ form_start(form, {'attr': {'class': 'form-horizontal', 'role': 'form', 'novalidate': 'novalidate'}}) }}
<div class="form-group {% if form.password.vars.errors|length > 0 %}has-error{% endif %} {% if form.password.vars.required == 'true' %}required{% endif %}">
{{ form_label(form.password.first, "Password") }}
<div class="col-sm-8">
{{ form_row(form.password.first) }}
<span class="help-block">{{ form_errors(form.password) }}</span>
</div>
</div>
<div class="form-group {% if form.password.vars.errors|length > 0 %}has-error{% endif %} {% if form.password.vars.required == 'true' %}required{% endif %}">
{{ form_label(form.password.second, "Confirm password") }}
<div class="col-sm-8">
{{ form_row(form.password.second) }}
</div>
</div>
........
form
Controller $builder->add( 'password', 'repeated', array( 'type' => 'password',
'required' => true,
'invalid_message' => ErrorMessages::PASSWORDS_DONOT_MATCH,
'options' => array('attr' => array('class' => 'password-field form-control')),
'first_options' => array('label' => false,
//here I enable error bubbling so that on the twig it will render the error under the first password text field
'error_bubbling' => true,
'label_attr'=>array('class'=>'col-sm-3 control-label')),
'second_options' => array('label' => false,
'label_attr'=>array('class'=>'col-sm-3 control-label'))));
关于forms - form_widget不显示invalid_message错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26228605/
我想显示 已检查 如果一个变量为空所以我做了这个代码 {{ form_widget(form.showPrice, {% if travel is null %} {'attr': {'checke
我去看看 Symfony 的扩展 Twig 函数 form_widget 实际是如何工作的。我期待在 symfony / src / Symfony / Bridge / Twig / Extensi
是否可以对表单元素属性使用原始过滤器?我想要这样的东西: {{ form_widget(searchForm.query, { 'type': 'search', 'attr': {
在 Controller 端使用 PHP,我可以使用 createFormBuilder() 将占位符添加到我的字段: $form = $this->createFormBuilder($compan
我想替换: {{ form_errors(form.name) }} {{ form_widget(form.name, { 'attr': {'placeholder': 'Nom'} }) }}
在调用 form_widget() 时,我想用 Twig 将类添加到现有类中。 -function,所以我想合并它们。但是当我使用 {{ form_widget(form.field1), {'att
简短的长问题,在对此进行了大量研究并找到了很多关于如何扩展现有字段类型、继承它们或更改后端某些内容的信息之后,但对于前端的实际渲染绝对没有,我是来问这个问题的。 手头“问题”的简短解释:我需要一个 E
如何自定义以下代码?我要使用来自数据库的复选框。 这是我的表单 $builder->add('entityname', 'entity', array( 'class'
为了验证表单,我使用了一个标准: {{ form_widget(form.save, {'attr': {'class': 'btn btn-sm btn-danger'}, 'label': 'Su
我一直在关注以下资源中的文档 http://silex.sensiolabs.org/doc/providers/form.html 但我收到以下错误 Twig_Error_Syntax: The f
当我在 Controller 中创建一个表单时,如下所示: $form = $this->createFormBuilder() ->add('field_name') ->getFo
我是一名优秀的程序员,十分优秀!