私はブートストラップタブを使用しています。各タブにはログインフォームがあり、もう一方のタブにはサインアップフォームがあります。いずれかのフォームにエラーがある場合、最初のタブに戻ります。フォームエラーの場合は、選択したタブのままにしておいてください。
私が達成しようとしているのは、どちらのフォームにもエラーがあり、そのタブにとどまる場合です。
質問:フォームにエラーがあり、それがそのブートストラップタブに残ることを確認する方法がある場合。エラーがある場合、最初のタブに戻ります。
フォームが送信されたときに、ページがリロードされているので、私はフルビュー
<?php echo $header;?><?php echo $menu;?>
<div class="container">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#login" role="tab" data-toggle="tab">Login</a></li>
<li role="presentation"><a href="#sign_up" aria-controls="sign_up" role="tab" data-toggle="tab">Sign Up</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content" style="margin-top: 5rem;">
<div role="tabpanel" class="tab-pane active" id="login">
<div class="row">
<div class="col-lg-6 col-lg-offset-3">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<a href="<?php echo $google_login_url;?>" role="button" class="btn btn-danger btn-block">
<i class="fa fa-google-plus" aria-hidden="true"></i> Sign in with Google
</a>
</div>
<hr />
<?php if (isset($login_errors)) {?>
<?php echo $login_errors;?>
<?php }?>
<?php echo form_open('users/login', array('id' => 'login', 'name' => 'login', 'role' => 'form'));?>
<div class="form-group">
<label for="input-username">Username</label>
<input type="text" name="username" class="form-control" id="input-username" placeholder="Username">
</div>
<div class="form-group">
<label for="input-password">Password</label>
<input type="password" name="password" class="form-control" id="input-password" placeholder="Password">
</div>
<div class="checkbox">
<label>
<input type="checkbox"> Remember me
</label>
</div>
<div class="form-group">
<?php
echo form_submit('login', 'Login', array('class' => 'btn btn-primary'))
;?>
</div>
<?php echo form_close();?>
</div>
</div>
</div>
</div>
</div><!-- Login -->
<div role="tabpanel" class="tab-pane" id="sign_up">
<div class="row">
<div class="col-lg-6 col-lg-offset-3">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<a href="<?php echo $google_login_url;?>" role="button" class="btn btn-danger btn-block">
<i class="fa fa-google-plus" aria-hidden="true"></i> Sign in with Google
</a>
</div>
<hr />
<?php if (isset($signup_errors)) {?>
<?php echo $signup_errors;?>
<?php }?>
<?php echo form_open('users/signup', array('id' => 'form_signup', 'name' => 'signup', 'role' => 'form'));?>
<div class="form-group">
<label for="input-username">Username</label>
<input type="text" name="username" class="form-control" id="input-username" placeholder="Username">
</div>
<div class="form-group">
<label for="input-email">Email</label>
<input type="text" name="email" class="form-control" id="input-email" placeholder="Email">
</div>
<div class="form-group">
<label for="input-password">Password</label>
<input type="password" name="password" class="form-control" id="input-password" placeholder="Password">
</div>
<div class="form-group">
<?php
echo form_submit('signup', 'Signup', array('class' => 'btn btn-primary'))
;?>
</div>
<?php echo form_close();?>
</div>
</div>
</div>
</div>
</div><!-- Sign Up-->
</div><!-- Tab Content -->
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#form_signup').submit(function() {
if($('#sign_up').hasClass('active')) {
$('#sign_up').addClass('in');
}
});
});
</script>
<?php echo $footer;?>