6

我正在为我的网站注册向导使用 jQuery Steps,效果非常好,只是在第一步我得到了上一个按钮,这真的没有意义,因为没有以前的内容。

我查看onInit()了 API 中的函数,但没有设置enablePreviousButton, 只有enableFinishButtonenableCancelButton

有没有办法可以在第一步中删除“上一步”按钮?

要求的代码:

$("#register-form").steps({
    headerTag: "h3",
    bodyTag: "fieldset",
    autoFocus: true,
    onInit: function (event, current) {
        alert(current);
    },
    labels: {
        finish: 'Sign Up <i class="fa fa-chevron-right"></i>',
        next: 'Next <i class="fa fa-chevron-right"></i>',
        previous: '<i class="fa fa-chevron-left"></i> Previous'
    }
});

HTML:

<h3><?= $lang_wizard_account; ?></h3>
<fieldset>
    <legend><?= $lang_text_your_details; ?></legend>
    <div class="form-group">
        <label class="control-label col-sm-3" for="username"><b class="required">*</b> <?= $lang_entry_username; ?></label>
        <div class="col-sm-8">
            <input type="text" name="username" value="<?= $username; ?>" class="form-control" placeholder="<?= $lang_entry_username; ?>" autofocus id="username" required>
            <?php if ($error_username) { ?>
            <span class="help-block error"><?= $error_username; ?></span>
            <?php } ?>
        </div>
    </div>
    <div class="form-group">
        <label class="control-label col-sm-3" for="firstname"><b class="required">*</b> <?= $lang_entry_firstname; ?></label>
        <div class="col-sm-8">
            <input type="text" name="firstname" value="<?= $firstname; ?>" class="form-control" placeholder="<?= $lang_entry_firstname; ?>" id="firstname" required>
            <?php if ($error_firstname) { ?>
            <span class="help-block error"><?= $error_firstname; ?></span>
            <?php } ?>
        </div>
    </div>
    .... 
</fieldset>
4

4 回答 4

12

这具有相同的效果,但不那么 hack-y:

.wizard > .actions > ul > li.disabled {
  display: none;
}
于 2015-06-01T16:58:35.653 回答
6

好的,非常丑陋的黑客,但它确实按预期工作:

$("#register-form").steps({
    headerTag: "h3",
    bodyTag: "fieldset",
    autoFocus: true,
    onInit: function (event, current) {
        $('.actions > ul > li:first-child').attr('style', 'display:none');
    },
    onStepChanged: function (event, current, next) {
        if (current > 0) {
            $('.actions > ul > li:first-child').attr('style', '');
        } else {
            $('.actions > ul > li:first-child').attr('style', 'display:none');
        }
    },
    labels: {
        finish: 'Sign Up <i class="fa fa-chevron-right"></i>',
        next: 'Next <i class="fa fa-chevron-right"></i>',
        previous: '<i class="fa fa-chevron-left"></i> Previous'
    }
});

感谢白盒!

于 2015-03-22T04:36:23.463 回答
2

这是使用 jQuery 的一个很好的解决方案:

$("a[href$='next']").hide();
$("a[href$='previous']").hide();

这个解决方案允许你调用 .click() 函数去下一个或上一个,像这样:

$("a[href$='next']").click();

或者

$("a[href$='previous']").click();
于 2018-10-09T11:15:03.497 回答
0

以前的解决方案对我来说不太有效,但这确实有效:

.wizard > .actions > ul > li.disabled > a {
  background: white;
}
于 2020-01-08T04:07:16.903 回答