似乎某些版本的默认android浏览器存在渲染问题。如果我创建一个页面,我有一些输入字段和一个按钮,当我禁用其他输入字段时,该按钮显示为灰色(除非这是在页面加载时完成的,你必须点击/缩放一点到让浏览器重新渲染。)
有趣的是,它不会将禁用的STYLE应用于按钮,而只是将其灰显。这是一个样本。
Link to editor jsfiddle
Link to embedded jsfiddle
ul { list-style-type:none; }
.xxx {
background: blue;
color: white;
}
.xxx:disabled { background-color: red; }
<div id="root">
<ul>
<li>
<input name="x" id="enable" class="x" type="radio">Enable</input>
</li>
<li>
<input name="x" id="disable" class="x" type="radio">Disable</input>
</li>
</ul>
<input type="button" class="xxx" value="Button"></input>
</div>
$(function() {
$('.x:eq(0)').prop('disabled', true);
});
注意事项:
任何想法如何解决这个问题?
答案 0 :(得分:6)
我终于明白了。我对这个解决方案并不满意,但似乎有效。
如果将输入包装在position: relative
元素中,则可以解决问题。
答案 1 :(得分:0)
尝试使用此DOM
<div id="root">
<ul>
<li>
<input name="x" id="enable" class="x" type="radio" />Enable
</li>
<li>
<input name="x" id="disable" class="x" type="radio" />Disable
</li>
</ul>
<input type="button" class="xxx" value="Button" />
</div>
并且js为
$(function() {
$('.x:eq(0)').prop('disabled', 'disabled');
});
可能会有所帮助。
答案 2 :(得分:0)
让我们清理一些HTML!
有一个小提琴 - Fiddle Link!
</input>
代码。让我们自己关闭它们以使它们漂亮(即使除非你使用XHTML,否则不需要这样做)。<ul>
,当我们可以使用一点CSS来定位表单元素时,这似乎是多余的。HTML
<div id="root">
<input name="buttonState" id="enable" class="action" type="radio" />
<label for="enable">Enable</label>
<input name="buttonState" id="disable" class="action" type="radio" />
<label for="disable">Disable</label>
<input type="button" class="button" value="Button" />
</div>
的jQuery
因此,您希望在单击启用单选按钮时启用该按钮,并在单击禁用单选按钮时禁用该按钮?这里:
$('#disable').click(function () {
$('.button').attr('disabled', true);
});
$('#enable').click(function () {
$('.button').attr('disabled', false);
});
最后,CSS。
.action {
display: block;
float: left;
clear: left;
margin: 0 10px;
}
label {
display: block;
margin: 10px 0;
}
.button {
background: #00F;
margin: 0 10px 10px 10px;
}
.button:disabled {
background: #F00;
}
input, label {
cursor: pointer;
}
可爱:)