启用/禁用按钮在模态弹出

本文关键字:模态 按钮 启用 | 更新日期: 2023-09-27 17:52:57

我是客户端编程的新手,我希望解决以下问题。我有MVC cshtml页面,其中有一些信息。点击保存按钮,有一个模式弹出显示(附屏幕截图),其中有一个复选框,一个文本框,其中有一些文本,保存和取消按钮。下面是这个模态弹出窗口的html。

<div id="save-as-modal" class="modal fade" role="dialog">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header modal-header-blue">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span id="close" aria-hidden="true" class="fa fa-times"></span>
                    </button>
                    <h4 class="modal-title">Save As...</h4>
                </div>
                <div class="modal-body">
                    <div class="messages"></div>
                    <div class="form-horizontal">
                        <div class="form-group">                               
                                <input class="@Model.CheckBoxContainerDivCssClass" type="checkbox" id="chkBox">Are u sure ?<br>                               
                                <label class="@Model.FormLabelRequiredCssClass">Name</label>
                                <div class="@Model.FormFieldEditorDivCssClass">
                                    <input class="@Model.InputTextCssClass" type="text" name="name" value="" />
                                </div>
                            </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-primary save" id="btnSave">Save</button>
                    <button class="btn btn-default cancel">Cancel</button>
                </div>
            </div>
       </div>
</div>

现在我想在加载这个弹出框时禁用保存按钮,并且保存按钮应该只在选中复选框时启用。我为这个

编写了以下Jquery
<script>
        $(document).ready(function () {           
            $('#btnSave').prop('disabled', !$('#chkBox').prop("checked"));
            $('#chkBox').on('change', function () {
                $('#btnSave').prop('disabled', !$('#chkBox').prop("checked"));
            })
        });
</script>

但它似乎不起作用。当在屏幕上看到弹出窗口时,该按钮未被禁用。但是在复选框的选中和取消选中…它开始按照它应该的方式运行,就像……在复选框的复选框中启用保存按钮,在取消复选框中禁用保存按钮。后来我意识到,在保存按钮上使用的class="btn btn-primary save"与此有关。如果我在保存按钮上删除了这个类,虽然它看起来并不美观,但它的工作方式应该是,即当模态弹出窗口出现时禁用,启用和禁用复选框上的复选和取消选中的保存按钮。

class="btn btn-primary save"对于btn-primary

具有以下代码
.btn-default, .btn-primary, .btn-success, .btn-info, .btn-warning, .btn-danger {   text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);  
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); }
.btn-primary {   background-image: -webkit-linear-gradient(top,
#428bca 0%, #2d6ca2 100%);   background-image:         linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);   background-repeat: repeat-x;   border-color: #2b669a; }

在这个CSS中是否有任何东西可以防止按钮在加载时被禁用?我不知道如何使这个工作保持class="btn btn-primary保存"在按钮上。

希望得到一些帮助。

AJ

启用/禁用按钮在模态弹出

是否有任何东西阻止您在MVC视图中初始设置这些默认状态?在那里做比在Javascript中做更有意义。

为按钮添加disabled属性:

<button type="button" class="btn btn-primary save" id="btnSave" disabled>Save</button>

你会在你的复选框上使用以下处理程序(你应该仍然工作,但你是让jQuery每次搜索元素,所以分配button和使用event.target是更好(和更性能)的选项:

var button = $('#button');
$('#chkBox').change(function(event) {
    button.prop('disabled', !$(event.target).is(':checked'));
});

给你一把小提琴