禁用从另一个表单到另一个表单的按钮的问题

时间:2014-06-17 23:19:53

标签: javascript jquery html html5 twitter-bootstrap-3

我制作单页网站并使用jquery进行展示和隐藏表单切换。

我想要做的是在用户点击它将显示的第二个链接后,前两个按钮将无法使用,在用户点击第三个链接后,它将无法使用所有按钮。如果用户点击第一个链接,则会停用twothree按钮。

我的问题是在点击第二个链接后,所有按钮都无法与点击后的第三个链接相同。

当前输出:http://jsfiddle.net/GZSH6/92/

脚本:

    $('#one').prop('disabled', false);
    $('#two').prop('disabled', true);
    $('#three').prop('disabled', true);


$('.one').click(function(){
    $('#one').prop('disabled', false);
    $('#two').prop('disabled', true);
    $('#three').prop('disabled', true);
});
$('.two').click(function(){
    $('#one').prop('disabled', false);
    $('#two').prop('disabled', false);
    $('#three').prop('disabled', true);
});
$('.three').click(function(){
    $('#one').prop('disabled', false);
    $('#two').prop('disabled', false);
    $('#three').prop('disabled', false);
});

1 个答案:

答案 0 :(得分:1)

首先,您不应该使用具有相同ID的HTML元素。那会引起问题。其次,我建议使用.attr()(attribute)方法而不是.prop()。

我使用这些更改修改了您的代码并且它正常工作,尽管您可能想要检查您的方法并且只有页面上每个按钮的一个副本,或者,如果您想为每个div重复它们,那么设置他们的属性是固定的,因为它们似乎永远不会改变。

我在下面的代码中包含了你的代码,但是我还将你的JSFiddle与更改分开。你可以在这里查看:http://jsfiddle.net/QTMR5/1/

<a href="javascript:void(0)" class="show-page one" data-page="first">First</a>
<a href="javascript:void(0)" class="show-page two" data-page="second">Second</button>
<a href="javascript:void(0)" class="show-page three" data-page="third">Third</a>

<div class="container">
    <div class="page first">
        <div class="row">
            <center>
                First Page<br />
                <button class="btnd btnd-default" id="firstone">Personal Info</button>&nbsp;<br />
            <button class="btnd btnd-default" id="firsttwo">Educational Info</button>&nbsp;<br />
            <button class="btnd btnd-default" id="firstthree">Employment Info</button>
            </center>
         </div>
    </div>
    <div class="page second hide">
        <div class="row">
            <center>
                Second Page <br />
                 <button class="btnd btnd-default" id="secondone">Personal Info</button>&nbsp;<br />
            <button class="btnd btnd-default" id="secondtwo">Educational Info</button>&nbsp;<br />
            <button class="btnd btnd-default" id="secondthree">Employment Info</button>
            </center>
         </div>
    </div>
    <div class="page third hide">
        <div class="row">
            <center>
                Third Page <br />
                 <button class="btnd btnd-default" id="thirdone">Personal Info</button>&nbsp;<br />
            <button class="btnd btnd-default" id="thirdtwo">Educational Info</button>&nbsp;<br />
            <button class="btnd btnd-default" id="thirdthree">Employment Info</button>
            </center>
         </div>
    </div>

$(document).ready(function () {
    $('#firstone').attr("disabled", false);
    $('#firsttwo').attr('disabled', true);
    $('#firstthree').attr('disabled', true);

$('.one').click(function(){
    $('#firstone').attr('disabled', false);
    $('#firsttwo').attr('disabled', true);
    $('#firstthree').attr('disabled', true);
});
$('.two').click(function(){
    $('#secondone').attr('disabled', false);
    $('#secondtwo').attr('disabled', false);
    $('#secondthree').attr('disabled', true);
});
$('.three').click(function(){
    $('#thirdone').attr('disabled', false);
    $('#thirdtwo').attr('disabled', false);
    $('#thirdthree').attr('disabled', false);
});

var value = 0, progress;

function progressBar() {
    progress = setInterval(function () {
        var $bar = $('.bar');
        if (value >= 100) {
            clearInterval(progress);
            $('.progress').removeClass('active');
            $(".show-page[data-page=Profile]").trigger("click");
        } else {
            value += 10;
            $bar.width(value * 7);
        }
        $bar.text(value + "%");
    }, 800);
};

$(document).ready(function () {
    if (typeof (Storage) !== "undefined" && localStorage.getItem('pageToShow')) {
        var pageToShow = localStorage.getItem('pageToShow');
        $('.page').addClass('hide');
        $('.' + pageToShow).removeClass('hide');
    };
    $('.show-page').click(function () {
        var pageToShow = $(this).data('page');
        if (pageToShow == "progBar") {
            value = 0;
            $('.bar').width(0);
            $('.progress').addClass('active');
            progressBar();
        } else {
            clearInterval(progress);
        };
        $('.page').addClass('hide');
        $('.' + pageToShow).removeClass('hide');
        if (typeof (Storage) !== "undefined") {
            localStorage.setItem('pageToShow', pageToShow);
        };
    });
});
});