Javascript 选择“引导模式停止”复选框

Javascript 选择“引导模式停止”复选框,javascript,jquery,asp.net,twitter-bootstrap,checkbox,Javascript,Jquery,Asp.net,Twitter Bootstrap,Checkbox,我的页面底部有一个复选框。当用户单击它时,我希望弹出窗口显示。除复选框的切换外,所有操作都正常。当我使用下面的代码单击复选框时,会出现弹出窗口,但该框未选中。知道为什么吗 jQuery: $('#confirm-final').on('show.bs.modal', function (e) { $(this).find('.danger').attr('href', $(e.relatedTarget).data('href')); }); 复选框: <label class=

我的页面底部有一个复选框。当用户单击它时,我希望弹出窗口显示。除复选框的切换外,所有操作都正常。当我使用下面的代码单击复选框时,会出现弹出窗口,但该框未选中。知道为什么吗

jQuery:

$('#confirm-final').on('show.bs.modal', function (e) {
    $(this).find('.danger').attr('href', $(e.relatedTarget).data('href'));
});
复选框:

<label class="checkbox-inline"><asp:CheckBox ID="chkFinalSubmission" runat="server" data-toggle="modal" data-target="#confirm-final"/>Final Submission</label>
最终提交
弹出窗口:

<div class="modal fade" id="confirm-final" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            Final Submission
        </div>
        <div class="modal-body">
            If you check final submission and submit this ad note, <strong>you will not be able to change it anymore.</strong> It will be permanently stuck in readonly mode.
        </div>
        <div class="modal-footer">
            <asp:Button ID="btnConfirmFinal" runat="server" Text="Got it" class="btn btn-default" data-dismiss="modal"/>
        </div>
    </div>
</div>

最后提交
如果您检查最终提交并提交此广告说明,您将无法再更改它。它将永久停留在只读模式。

至于原因,为打开模式而触发的事件包含
e.preventDefault()
,它通过单击模式调用元素取消可能发生的任何事件。如果是链接,则不会跟随href,而是打开模式。如果是复选框,则取消实际检查。这是内在的行为,你无法阻止它

如何解决这个问题:

在Bootstrap 3中,您可以访问触发模式的事件的
relatedTarget
属性。因为您的函数已经使用了
relatedTarget
,所以我假设您确实使用了bootstrap3。您可以将以下规则添加到现有jquery函数中:

$(e.relatedTarget).prop('checked', !$(e.relatedTarget).prop('checked'));
(这将复选框设置为与已存在的“已选中”状态相反的状态,即每次单击时将其打开和关闭)


另外,您确定其余的代码可以正常工作吗?您引用了
$(e.relatedTarget).data('href')
,但您的复选框中没有
data href
。你是说
data('target')
吗?

对不起,如果我没有完整的页面,我就无能为力了。完整的技巧在于它的呈现方式,以及引导程序在呈现时希望得到什么。网络编程对我来说是新的,所以这是一个巨大的帮助!是的,我的意思是
数据('target')
。。。不幸的是,它仍然不起作用。它显示模式,并且复选框保持不变-不变-未选中。您在控制台中查看是否收到错误消息了吗?打开浏览器的开发工具(通常是F11或mac上的cmd-alt-i),然后单击console选项卡。也许这会告诉你一些事情。如果它没有说什么,用:
console.log(e.relatedTarget)
替换我的行,然后在打开模式时发布它所说的内容)嗯,看起来我错了,引导程序3实际上不应该取消检查,这只是在引导程序2.3中。你用的是哪个版本?也许你的复选框不起作用还有另一个原因。我使用的是3.0。当我单击复选框时,在控制台中看不到任何内容。。。所以我猜它永远不会被调用。你能在你的网站上或者在jsfiddle.net上展示一个实际的工作示例吗?