我有一个网页与“编辑”的形式出现在一个模式对话框使用 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喜欢缓存东西。我已经“硬刷新”很多次了,没有改变任何东西。
有什么建议吗?
3条答案
按热度按时间dddzy1tm1#
尝试使用disabled=“disabled”:
g6ll5ycj2#
Use readonly attribute instead of disabled.
vyu0f0g13#
使用prop代替attr