我有一张表格:
{{ Form::open(array('route' => 'process', 'method'=>'POST','data-abide' => '')) }}
<fieldset>
<div class="name-field">
{{ Form::label('name', 'Name') }}
{{ Form::text('name', null, array('required' => '', 'pattern' => 'alpha')) }}
<small class="error">A valid name is required.</small>
</div>
<div class="password-field">
{{ Form::label('password', 'Password') }}
{{ Form::password('password', null, array('id' => 'password', 'required' => '')) }}
<small class="error">Bad password.</small>
</div>
<div class="password-confirm-field">
{{ Form::label('password-confirm', 'Confirm Password') }}
{{ Form::password('confirm-password', null, array('required' => '', 'data-equalto' => 'password')) }}
<small class="error">The password did not match.</small>
</div>
</fieldset>
{{ Form::close() }}
我的姓名字段错误有效,当输入与模式不匹配时,会出现错误。
我遇到密码字段时遇到问题:
检查确认密码字段是否与密码字段相同不起作用。这是因为它永远不会传递给页面:
'data-equalto' => 'password'
我认为这是laravel的问题,因为当我使用dev工具手动添加它时,验证工作。如何修复它以便将此参数传递给页面?
我将密码字段留空并且未显示错误,我将字段自动设置为密码意味着它必须遵守某些规则,因此应显示错误 - 为什么不显示?
答案 0 :(得分:2)
您使用了错误的密码方法语法。根据{{3}},方法签名是:
/**
* Create a password input field.
*
* @param string $name
* @param array $options
* @return string
*/
public function password($name, $options = array())
...
它只有两个参数,但是你传递了三个,所以第三个参数被忽略了。
你应该使用
{{ Form::password('password', array('id' => 'password', 'required' => '')) }}
注意唯一的变化是第二个参数消失了。