Bootstrap HTML输入“禁用”属性在引导模态中不起作用

58wvjzkj  于 2022-12-08  发布在  Bootstrap
关注(0)|答案(3)|浏览(145)

我有一个网页与“编辑”的形式出现在一个模式对话框使用 Bootstrap 。
当表单出现时,我希望首先禁用其中一个输入字段,然后在用户单击复选框时启用该字段。
问题是,我的浏览器(Chrome)没有反映模态对话框中任何表单元素的disabled属性。模态对话框之外的任何表单元素都可以正常工作。
这在我拥有的另一个具有完全相同逻辑的网页上也工作得很好。它只是在 * 这个页面上行为不端。*
我已经通过HTML5的W3验证器运行了整个页面源代码,并且没有返回任何错误。
输入元素的代码:

<form role="form" id="frmEdit" action="group_edit.php" method="post">
    <!-- ... -->
    <input type="text" id="txtEditAlternate" class="form-control" name="alternate" disabled />
    <!-- ... -->
</form>

我甚至试图用jQuery在文档就绪时强行禁用它;这是行不通的:

$(document).ready(function() {
    $("#txtEditAlternate").attr("disabled", true);
    // ...
});

在禁用文本字段时唯一起作用的是选中复选框然后取消选中时:

$("#chkbox").click(function() {
    $("#txtEditAlternate").attr("disabled", !$(this).prop("checked"));
});

尽管这会破坏目的,因为文本字段应该在复选框被选中之前被禁用。
我读到过,简单地包含没有值的disabled是有效的HTML5(验证程序甚至没有警告这一点),它在其他地方也有效。
我已经尝试了我能想到的一切,只能推测它与Bootstrap模态功能有关。但就像我说的,同样的逻辑在我拥有的另一个网页上完美地工作。
是的,我知道Chrome喜欢缓存东西。我已经“硬刷新”很多次了,没有改变任何东西。
有什么建议吗?

dddzy1tm

dddzy1tm1#

尝试使用disabled=“disabled”:

<input type="text" id="txtEditAlternate" class="form-control" name="alternate" disabled="disabled" />
vyu0f0g1

vyu0f0g13#

使用prop代替attr

$("#txtEditAlternate").prop("disabled", true);

相关问题