如何聚焦/显示'选项卡窗格'如果使用jquery的bootstrap选项卡上的选项卡字段为空

How focus/show a 'tab-pane' if tab field empty on bootstrap tab using jquery?

本文关键字:选项 jquery bootstrap 如果 字段 聚焦 显示 何聚焦      更新时间:2023-09-26

我试图显示一个选项卡窗格,其中Bootstrap选项卡上的字段为空。这是我的HTML:

<div class="container">
    <ul class="nav nav-tabs" role="tablist">
        <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
        <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
        <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
        <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
    </ul>
    <form method="POST" id="frmUser">
        <div class="tab-content">
            <div role="tabpanel" class="tab-pane active" id="home">
                <div class="panel panel-primary">
                    <div class="panel-body">
                        <label class="control-label">First Name</label>
                        <input type="text" name="mirst_name" class="form-control">
                    </div>
                </div>
            </div>
            <div role="tabpanel" class="tab-pane" id="profile">
                <div class="panel panel-primary">
                    <div class="panel-body">
                        <label class="control-label">Middle Name</label>
                        <input type="text" name="middle_name" class="form-control">
                    </div>
                </div>
            </div>
            <div role="tabpanel" class="tab-pane" id="messages">
                <div class="panel panel-primary">
                    <div class="panel-body">
                        <label class="control-label">Last Name</label>
                        <input type="text" name="last_name" class="form-control">
                    </div>
                </div>
            </div>
            <div role="tabpanel" class="tab-pane" id="settings">
                <div class="panel panel-primary">
                    <div class="panel-body">
                        <label class="control-label">Email Address</label>
                        <input type="text" name="email" class="form-control">
                        <button type="submit" class="btn btn-primary" name="save">Submit</button>
                    </div>
                </div>
            </div>
        </div>
    </form>
</div>

在"提交最后一个选项卡""设置"中,检查所有选项卡字段是否为空,如果为空,则显示特定的选项卡。还可以将"导航选项卡"

  • 设置为活动。有解决方案吗?

    DEMOjsfiddle

  • 完整示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="jquery-2.1.4.min.js"></script>
        <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="bootstrap.min.css" >
    <!-- Optional theme -->
    <link rel="stylesheet" href="bootstrap-theme.min.css">
    <!-- Latest compiled and minified JavaScript -->
    <script src="bootstrap.min.js"></script>
    </head>
    <body>
        <div class="container">
        <ul class="nav nav-tabs" role="tablist">
            <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
            <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
            <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
            <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
        </ul>
        <form method="POST" id="frmUser">
            <div class="tab-content">
                <div role="tabpanel" class="tab-pane active" id="home">
                    <div class="panel panel-primary">
                        <div class="panel-body">
                            <label class="control-label">First Name</label>
                            <input type="text" name="mirst_name" class="form-control">
                        </div>
                    </div>
                </div>
                <div role="tabpanel" class="tab-pane" id="profile">
                    <div class="panel panel-primary">
                        <div class="panel-body">
                            <label class="control-label">Middle Name</label>
                            <input type="text" name="middle_name" class="form-control">
                        </div>
                    </div>
                </div>
                <div role="tabpanel" class="tab-pane" id="messages">
                    <div class="panel panel-primary">
                        <div class="panel-body">
                            <label class="control-label">Last Name</label>
                            <input type="text" name="last_name" class="form-control">
                        </div>
                    </div>
                </div>
                <div role="tabpanel" class="tab-pane" id="settings">
                    <div class="panel panel-primary">
                        <div class="panel-body">
                            <label class="control-label">Email Address</label>
                            <input type="text" name="email" class="form-control">
                            <input type="button" class="btn btn-primary " name="save" value="submit"></button>
                        </div>
                    </div>
                </div>
            </div>
        </form>
    </div>
    <script>
    $('input[name=save]').on('click',function(){ alert('hi');
    
    var tabs=$('.tab-pane input');
    $('.nav.nav-tabs li').removeClass('active');
    $('.tab-pane').removeClass('active');
    var bool=false;
    var bool=$.each(tabs,function(i,v){ 
        if($(v).val().length<=0){
            $('ul.nav li:eq('+i+')').addClass('active');
            $(v).parent().parent().parent().addClass('active');
            $(this).focus();
            return false;
        }
    
    })
    if(bool=true){window.location.href='http://google.com'}
    });
    </script>
    </body>
    </html>
    

    脚本

    $('input[name=save]').on('click',function(){     
    var tabs=$('.tab-pane input');
    $('.nav.nav-tabs li').removeClass('active');
    $('.tab-pane').removeClass('active');
    var bool=false;
    var bool=$.each(tabs,function(i,v){
        if($(v).val().length<=0){
            $('ul.nav li:eq('+i+')').addClass('active');
            $(v).parent().parent().parent().addClass('active');
            $(this).focus();
            return false;
        }
    
    })
    if(bool=true){window.location.href='http://google.com'}
    }); 
    

    //将按钮按钮更改为html输入,如下所示

    html

    <input type="button" class="btn btn-primary " name="save" value="submit"></button>
    

    找到以下功能的jquery脚本

    $(document).on('click','button[name="save"]',function(){ 
      var tabs=$('.tab-pane input');
      $('.nav.nav-tabs li,.tab-pane').removeClass('active');
    
      var bool=false;
      $.each(tabs,function(index,value){ 
      if($(this).val().length<=0){
        $('ul.nav li:eq('+index+')').addClass('active');
      $('.tab-content .tab-pane:eq('+index+')').addClass('active');
       $(this).focus();
        return false;
       }
      });
      return false;
    
      });
    

    演示链接:http://jsfiddle.net/asimshahiddIT/p7n9vdon/