jquery attr无法禁用下拉菜单
这是我当前的脚本。 else if
不起作用。jquery attr无法禁用下拉菜单
$('#groupbyCheckbox').change(function() {
if ($("#groupbyDropdown").prop("disabled", true)) {
$("#groupbyDropdown").attr('disabled','');
alert('true');
}
else if ($("#groupbyDropdown").prop("disabled", false)) {
alert();
$("#groupbyDropdown").attr('disabled','disabled');
alert('false');
}
});
additional question.
$('#newCheckBox').change(function(){
$("#dropDown").empty();
var items = [];
$.each(var1, function(key, data) {
items.push('<option value='+key+'>'+varlist+'</option>');
});
$("#dropDown").append(items.join(''));
});
在这两种情况下,您都在设置值而不是获取值。在这里看到:
if ($("#groupbyDropdown").prop("disabled", true)) {
实际上是设置属性。你想要的是检查它的当前值:
if ($("#groupbyDropdown").prop("disabled") == true) {
或者干脆:
if ($("#groupbyDropdown").prop("disabled")) {
同样的原则也适用于else if
:
else if ($("#groupbyDropdown").prop("disabled", false)) {
应该是:
else if ($("#groupbyDropdown").prop("disabled") == false) {
或者干脆:
else if (!$("#groupbyDropdown").prop("disabled")) {
这就是为什么它从来没有进入else区块 - 你总是将它设置为true事先(与两个if
和else if
整个条件将评估为true,反正这样没有真正的检查发生)。
看到一个简单的例子这里(切换复选框禁用状态):http://jsfiddle.net/Lohervar/
尝试
$('#groupbyCheckbox').change(function() {
var isDisable= $("#groupbyDropdown").prop("disabled");
$("#groupbyDropdown").prop("disabled",!isDisable);
});
注:设置禁止属性$( “#groupbyDropdown”).prop( “已禁用” ,真),不回Boolean
,它总是返回object
使用if($("#groupbyDropdown").prop("disabled")==false)
谢谢youuuuuuuuuuu。 – superdb 2014-10-30 06:00:15
我在10分钟前写过... – Shomz 2014-10-30 06:01:40
@Downvoter你能为你的投票发表评论吗? – Balachandran 2014-10-30 06:02:11
我知道你在试图做的是启用/禁用基于该复选框是否被选中
jQuery(function($) {
$('#groupbyCheckbox').change(function() {
$("#groupbyDropdown").prop('disabled', this.checked);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" id="groupbyCheckbox" />
<select id="groupbyDropdown">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
在代码中存在多个问题的选择,
- 在
if
条件下,您使用的设置器版本.prop()
将始终返回一个jquery对象,因此将永远被truthy - 也不应使用.attr()来设置喜欢禁用的属性,你需要使用.prop()
+1这可能正是OP想要做的。 – Shomz 2014-10-30 06:15:26
你需要使用'$( “#groupbyDropdown”)。prop('disabled',true);' – 2014-10-30 05:47:24
将参数传递给第二个提醒 – cyan 2014-10-30 05:48:44
第一个if正在工作,但第二个不是。 – superdb 2014-10-30 05:50:39