在按Tab键上它不会进入文本框

时间:2014-02-03 09:17:17

标签: javascript jquery html asp.net css

我正在使用html css和jquery创建标签。我没有使用jquery ui。让我解释一下这个问题。

在选项卡中有许多选项卡。每个选项卡都包含texbox,下拉列表,复选框等,例如当用户在第一个选项卡中时。在此选项卡中有文本框。当用户按Tab键时到达最后一个文本框时,它将移动到下一个标签的第一个元素(如文本框/下拉列表等)。我创建了这个,但它没有移动到标签文本框。代码在pastebin和js小提琴上可用。我找不到我的代码有什么问题。如果你需要任何澄清,请问我

它不会进入下一个标签。让我们理解这个问题。当我按Tab键时,keyit不会进入文本框。当用户在tab1的最后一个文本框中按Tab键时,它将移动到下一个选项卡文本框。例如,在选项卡1中有四个文本框。当用户按Tab键时,它将显示文本1然后文本框2文本3,当在最后一个文本框中按下Tab键时,它将移动到下一个tab2文本框1.下一个选项卡将跟随同样的事情。

注意:请不要建议tabindex。我想用jquery做。

链接:[演示在这里] [1] bin: - http://pastebin.com/E85NsNtg

 <!DOCTYPE html>
    <html>
        <head>
            <meta charset='utf-8'/>
            <title>jQuery Tabs Demo</title>
            <style>
                * {padding:0; margin:0;}

                html {
                    background:url(/img/tiles/wood.png) 0 0 repeat;
                    padding:15px 15px 0;
                    font-family:sans-serif;
                    font-size:14px;
                }

                p, h3 { 
                    margin-bottom:15px;
                }

                div {
                    padding:10px;
                    width:600px;
                    background:#fff;
                }

                .tabs li {
                    list-style:none;
                    display:inline;
                }

                .tabs a {
                    padding:5px 10px;
                    display:inline-block;
                    background:#666;
                    color:#fff;
                    text-decoration:none;
                }

                .tabs a.active {
                    background:#fff;
                    color:#000;
                }

            </style>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
            <script src="global.js"></script>
            <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
        </head>
        <body>
        <div id="tabs">
            <ul class='tabs'>
                <li><a id="ATab1" href='#tab1' >Tab 1</a></li>
                <li><a id="ATab2" href='#tab2' >Tab 2</a></li>
                <li><a id="ATab3" href='#tab3' >Tab 3</a></li>
                <li><a id="ATab4" href='#tab4' >Tab 4</a></li>
                <li><a id="ATab5" href='#tab5' >Tab 5</a></li>
                <li><a id="ATab6" href='#tab6' >Tab 6</a></li>

            </ul>
            <div id='tab1'>
                <h3>Section 1</h3>
                Fisrt: <input type="textbox" />
                <br />
                Second: <input type="textbox" />
                <br />
                Third: <input type="textbox" />
                <br />
                Fourth: <input type="textbox" />
            </div>
            <div id='tab2'>
                <h3>Section 2</h3>
                Fifth: <input type="textbox" />
                <br />
                Sixth: <input type="textbox" />
            </div>
            <div id='tab3'>
                <h3>Section 3</h3>
                Seventh: <input type="textbox" />
                <br />
                Eighth: <input type="textbox" />
            </div>
            <div id='tab4'>
            <h3>Section 4</h3>
                ninth: <input type="textbox" />
                <br />
                tength: <input type="textbox" />
            </div>
            <div id='tab5'>
            <h3>section 5</h3>
            11: <input type="textbox" />
            <br />
            12: <input type="textbox" />
        </div>

            <div id='tab6'>
            <h3>section 6</h3>
            13: <input type="textbox" />
            <br />
            14: <input type="textbox" />
        </div>



        </body>
    </html>


  [1]: http://jsfiddle.net/nikhilvkd/YG94p/3/

(document).ready(function () {
    $('ul.tabs').each(function () {
        // For each set of tabs, we want to keep track of
        // which tab is active and it's associated content
        var $active, $content, $links = $(this).find('a');

        if ($('#_ctl0_hdnCurrentTabSelection').val() == "") {
            $('#_ctl0_hdnCurrentTabSelection').val(location.hash)
        }

        // If the location.hash matches one of the links, use that as the active tab.
        // If no match is found, use the first link as the initial active tab.
        $active = $($links.filter('[href="' + $('#_ctl0_hdnCurrentTabSelection').val() + '"]')[0] || $links[0]);
        $active.addClass('active');
        $content = $($active.attr('href'));
        window.location.href = window.location.href.toString().split('#')[0] + $active.attr('href');

        // Hide the remaining content
        $links.not($active).each(function () {
            $($(this).attr('href')).hide();
        });

        // Bind the click event handler
        $(this).on('click', 'a', function (e) {
            // Make the old tab inactive.
            $active.removeClass('active');
            //window.location.href = window.location.href.toString().replace($active.attr('href'), '');
            $content.hide();

            // Update the variables with the new link and content
            $active = $(this);
            $('#_ctl0_hdnCurrentTabSelection').val($active.attr("href"))
            $content = $($(this).attr('href'));
            window.location.href = window.location.href.toString().split('#')[0] + $active.attr('href');

            // Make the tab active.
            $active.addClass('active');
            $content.show();

            // Prevent the anchor's default click action
            e.preventDefault();
        });
    });

    $(document).on('keydown',function(e) {
        var keyCode = e.keyCode || e.which; 

        if (keyCode === 9) {
            if(!$('#tab1:last-child').is(':focus') && window.location.href.search('tab1') != -1){
                $('#ATab1').removeClass('active');
                $('#ATab2').addClass('active');

                $('#tab1').hide();
                $('#tab2').show();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').hide(); 


                window.location = "#tab2";
            }
            else if(!$('#tab2:last-child').is(':focus') && window.location.href.search('tab2') != -1){
                $('#ATab2').removeClass('active');
                $('#ATab3').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').show();

                window.location = "#tab3";
            }
            else if(!$('#tab3:last-child').is(':focus') && window.location.href.search('tab3') != -1){
                $('#ATab3').removeClass('active');
                $('#ATab4').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').show();
                window.location = "#tab4";
            }

            else if(!$('#tab4:last-child').is(':focus') && window.location.href.search('tab4') != -1){
                $('#ATab4').removeClass('active');
                $('#ATab5').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').show();
                window.location = "#tab5";
            }

            else if(!$('#tab5:last-child').is(':focus') && window.location.href.search('tab5') != -1){
                $('#ATab5').removeClass('active');
                $('#ATab6').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').hide();
                 $('#tab6').show(); 
                window.location = "#tab6";
            }

            else if(!$('#tab6:last-child').is(':focus') && window.location.href.search('tab6') != -1){
                $('#ATab6').removeClass('active');
                $('#ATab1').addClass('active');

                $('#tab1').show();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').hide();
                $('#tab6').hide();
                $('#tab7').hide();
                window.location = "#tab1";
            }



        }
            e.preventDefault();

     });
});

1 个答案:

答案 0 :(得分:0)

您使用type="textbox"代替type="text"

演示链接http://jsfiddle.net/dhana36/z6g88/1/

$(document).ready(function () {
    $('ul.tabs').each(function () {
        // For each set of tabs, we want to keep track of
        // which tab is active and it's associated content
        var $active, $content, $links = $(this).find('a');

        if ($('#_ctl0_hdnCurrentTabSelection').val() == "") {
            $('#_ctl0_hdnCurrentTabSelection').val(location.hash)
        }

        // If the location.hash matches one of the links, use that as the active tab.
        // If no match is found, use the first link as the initial active tab.
        $active = $($links.filter('[href="' + $('#_ctl0_hdnCurrentTabSelection').val() + '"]')[0] || $links[0]);
        $active.addClass('active');
        $content = $($active.attr('href'));
        window.location.href = window.location.href.toString().split('#')[0] + $active.attr('href');

        // Hide the remaining content
        $links.not($active).each(function () {
            $($(this).attr('href')).hide();
        });

        // Bind the click event handler
        $(this).on('click', 'a', function (e) {
            // Make the old tab inactive.

            $active.removeClass('active');
            //window.location.href = window.location.href.toString().replace($active.attr('href'), '');
            $content.hide();

            // Update the variables with the new link and content
            $active = $(this);
            $('#_ctl0_hdnCurrentTabSelection').val($active.attr("href"))
            $content = $($(this).attr('href'));
            window.location.href = window.location.href.toString().split('#')[0] + $active.attr('href');

            // Make the tab active.
            $active.addClass('active');
            $content.show(this.href);
            var tt = $(this).attr('href')
            $(tt).find('input:eq(0)').focus()
            console.log($(tt).find('input:eq(0)').val())
            //$(this.href).find('.ttt').focus()
            // Prevent the anchor's default click action
            e.preventDefault();
        });
    });

    $(document).on('keydown',function(e) {
        var keyCode = e.keyCode || e.which; 

        if (keyCode === 9) {
            if(!$('#tab1:last-child').is(':focus') && window.location.href.search('tab1') != -1){
                $('#ATab1').removeClass('active');
                $('#ATab2').addClass('active');

                $('#tab1').hide();
                $('#tab2').show();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').hide(); 


                window.location = "#tab2";
            }
            else if(!$('#tab2:last-child').is(':focus') && window.location.href.search('tab2') != -1){
                $('#ATab2').removeClass('active');
                $('#ATab3').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').show();

                window.location = "#tab3";
            }
            else if(!$('#tab3:last-child').is(':focus') && window.location.href.search('tab3') != -1){
                $('#ATab3').removeClass('active');
                $('#ATab4').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').show();
                window.location = "#tab4";
            }

            else if(!$('#tab4:last-child').is(':focus') && window.location.href.search('tab4') != -1){
                $('#ATab4').removeClass('active');
                $('#ATab5').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').show();
                window.location = "#tab5";
            }

            else if(!$('#tab5:last-child').is(':focus') && window.location.href.search('tab5') != -1){
                $('#ATab5').removeClass('active');
                $('#ATab6').addClass('active');

                $('#tab1').hide();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').hide();
                 $('#tab6').show(); 
                window.location = "#tab6";
            }

            else if(!$('#tab6:last-child').is(':focus') && window.location.href.search('tab6') != -1){
                $('#ATab6').removeClass('active');
                $('#ATab1').addClass('active');

                $('#tab1').show();
                $('#tab2').hide();
                $('#tab3').hide();
                $('#tab4').hide();
                $('#tab5').hide();
                $('#tab6').hide();
                $('#tab7').hide();
                window.location = "#tab1";
            }



        }
            e.preventDefault();

     });
});