首页 > 解决方案 > .removeAttr() 不从选项卡中删除数据切换

问题描述

情况

我正在开发一个有多个选项卡的程序。但是,除非用户保存并返回 ID,否则用户无法转到另一个选项卡。因此,我document.ready有以下代码应该从选项卡中删除选项卡属性。

    function DisableTabs() {
        alert('1');
        if ($("#applicationID").val() == null || $("#applicationID").val().toString().length <= 0 || parseInt($("#applicationID").val()) <= 0) {
            $("#dvAttach").removeAttr('data-toggle', 'tab');
            $("#dvAttach").removeAttr('onclick')
            $("#dvAttach").attr('onclick', 'ValidateTabs();');
            alert('2');
        }
        alert('3');
    }

我在我的 document.ready 中调用了这个函数,所有的警报都显示出来了,这是选项卡的代码。

<ul class="nav nav-tabs">
    <li class="nav-item">
        <a class="nav-link active" href="#dvInfo" role="tab" data-toggle="tab">Application Information</a>
    </li>
    <li class="nav-item">
        <a class="nav-link" href="#dvAttach" role="tab" data-toggle="tab" onclick="GetFiles()">Attachments</a>
    </li>
</ul>

问题

正如我在标题中提到的,我可以单击选项卡,即使 applicationID 没有值。当我加载页面并检查选项卡时,我仍然看到它具有它的data-toggle属性。

如果可以提供任何帮助,将不胜感激。

标签: javascriptjquery

解决方案


在这里,在第 4 行和第 5 行的 javascript 代码中,您尝试选择 ID 为 dvAttach 的元素(使用“#dvAttach”),但没有 ID 为 dvAttach 的元素。将 id="dvAttach" 添加到要删除属性的元素中!

<ul class="nav nav-tabs">
<li class="nav-item">
    <a class="nav-link active" href="#dvInfo" role="tab" data-toggle="tab">Application Information</a>
</li>
<li class="nav-item">
    <a class="nav-link" href="#dvAttach" id="dvAttach" role="tab" data-toggle="tab" onclick="GetFiles()">Attachments</a>
</li>
</ul>

推荐阅读