我目前正在使用Laravel内置身份验证系统。但我没有使用任何特定页面进行用户注册,而是使用自举模式。我的代码按预期工作,但仅在注册信息(输入值)正确时才能正常工作。
但是当输入字段值无效并希望显示错误时,我想重定向到注册模式窗口。
我附上我的代码和图片以便更好地理解:
bootstrap模式窗口中的代码:
<button type="button" class="mdl-button mdl-js-button mdl-js-ripple-effect" data-toggle="modal" data-target="#registerModal">Register</button>
<div class="modal registerModal" id="registerModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">User Registration</h4>
</div>
<form action="{{ route('register') }}" method="POST">
<div class="modal-body">
<div class="form-group">
<div class="row">
<div class="col-md-3"><label for="name">Name:</label></div>
<div class="col-md-9"><input type="text" name="name" class="form-control" id="name" placeholder="Your name"></div>
</div>
<br>
<div class="row">
<div class="col-md-3"><label for="email">Email:</label></div>
<div class="col-md-9"><input type="email" name="email" class="form-control" id="email" placeholder="Your email **This should be unique**"></div>
</div>
<br>
<div class="row">
<div class="col-md-3"><label for="password">Password:</label></div>
<div class="col-md-9"><input type="password" name="password" class="form-control" id="password" placeholder="Your password"></div>
</div>
<br>
<div class="row">
<div class="col-md-3"><label for="password_confirmation">Confirm Password:</label></div>
<div class="col-md-9"><input type="password" name="password_confirmation" class="form-control" id="password_confirmation" placeholder="Confirm your password"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Confirm Registration</button>
{{ csrf_field() }}
</div>
</form>
</div>
</div>
</div>
路线:
Route::post('/auth/register', ['uses'=>'Auth\AuthController@postRegister', 'as'=>'register']);
我要重定向的模态窗口:
感谢。
答案 0 :(得分:0)
在这种情况下,您有两个选项,您可以进行Ajax身份验证并接收控制器发送的错误响应的验证数据,或者您可以检查bs3模态事件,我认为您可以使用以下方法实现: http://getbootstrap.com/javascript/#js-events
答案 1 :(得分:0)
bretanac93的回答是一种更为正确的做法,因为模式本身会保持开放状态,当价值不正确时,用户不会因整个页面闪烁而感到沮丧;它表示重新实现和添加javascript逻辑/服务器验证逻辑可能需要做很多工作(它可能值得做)。
但是那说;问题是当你因为验证错误而返回到页面时,模态不再出现,因为在当前代码中,初始化模态窗口的唯一方法是按钮单击本身。您可以做的是添加逻辑以在验证失败时重新显示模态窗口。
像这样;
@if( $errors->isNotEmpty() )
<script>
$(function () {
$('#registerModal').modal('show')
})
</script>
@endif
所有这些都要记住,您当前的注册模式没有任何验证显示代码,以向用户显示哪些部分引发了验证错误。