我有两种形式(登录和注册),其中一个在加载页面时隐藏(隐藏登录表单)。用户可以使用按钮在它们之间切换。登录失败时会抛出错误,并以登录表单显示。问题是在登录失败后加载页面时,它会隐藏登录表单并显示“注册表”。只有当用户点击登录表单按钮时,它才会显示错误。我想显示重新加载页面时出错的表单。
$(document).ready(function(){
$('#login_form').hide();
});
这是我的登录表单
<form action="/login" method="post" id="login_form">
{{csrf_field()}}
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<input type="text" name="email" id="login_email" placeholder="Email"/>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
<input type="password" name="password" id="login_pass" placeholder="Password"/>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
<div class="form-group">
<input type="submit" class="btn" id="login_sbt_btn" value="Login"/>
</div>
</form>
help-block
仅在表单中出现错误时才会添加
这很好用,但是在首次加载页面时它会隐藏所有表单。
var $errorField = $('.has-error');
if($errorField) {
$('form').hide();
$errorField.closest('form').show();
} else {
$('#login_form').hide();
}
答案 0 :(得分:1)
$
返回一个类似数组的对象。您必须检查length
属性,如下所示:
var $errorField = $('.has-error');
if($errorField.length != 0) {
$('form').hide();
$errorField.closest('form').show();
} else {
$('#login_form').hide();
}