我有几个下拉列表,其中只有一个从一开始就启用,其他所有都被禁用
<select class="someClass" name="someName" multiple id="someId" disabled>
禁用下拉菜单的启用取决于第一个(启用)下拉列表中值的选择,因此我使用以下代码
$('#enabledDropDown').on('change',function() { }
在那里(在另一个if语句中)我尝试了所有可能的组合:
$('#someId').multiselect('enable');
$('#someId').multiselect('refresh');
$('#someId option').attr('disabled',false);
$('#someId').prop('disabled', false);
$('#someId').material_select();
$('#someId').removeAttr('disabled');
但它不起作用。下拉列表仍然被禁用!
修改
我有$(document).ready(function () { }
它做了以下......
$('#someId').multiselect({
name : 'someName',
columns : someNumber,
placeholder : 'somePlaceholder'
});
这似乎是我的问题的原因,因为如果我删除document.ready函数中的相应代码块,则下拉列表会按预期运行。 问题是我需要document.ready函数。
我真的不明白为什么这会交互,因为document.ready只在侧面加载时执行一次。但是在那之后就会发生这种情况。
答案 0 :(得分:0)
再次检查您的情况。 prop('disable',false)
应该有效,请查看下面的代码段以供参考。
$(document).ready(function() {
$("#checkMe").click(function() {
if ($(this).is(":checked")) {
$("#dropdown").prop("disabled", true);
} else {
$("#dropdown").prop("disabled", false);
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dropdown" style="width:200px;">
<option value="feedback">Options</option>
<option value="feedback">Options</option>
</select>
<input type="checkbox" id="checkMe" value="feedback"/>Check me!
&#13;
答案 1 :(得分:0)
你可以尝试
document.getElementById("someId").disabled=false;
并在第一个下拉列表中添加onclick函数并检查其值,然后启用/禁用下拉列表。
function check(){
if(document.getElementById('enabledDropDown').value == 'someId')
document.getElementById('someId').disabled=false;
else
document.getElementById('someId').disabled=true;
}
&#13;
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form>
<text>Select someId to enable dropdown</text><br>
<select class="someClass" name="someName" id="enabledDropDown" onchange="check()">
<option>Banana</option>
<option>Orange</option>
<option>someId</option>
<option>Pear</option>
<option>Banana</option>
<option>Orange</option>
</select>
<select class="someClass" name="someName" id="someId" disabled>
<option>Apple</option>
<option>Pear</option>
<option>Banana</option>
<option>Orange</option>
</select>
<br><br>
</body>
</html>
&#13;
答案 2 :(得分:0)
你必须使用$(&#34; .someClass&#34;)。prop(&#34; disabled&#34;,false);这是工作。例如:
{
"timestamp": 1505204641753,
"status": 500,
"error": "Internal Server Error",
"exception": "java.lang.IllegalArgumentException",
"message": "Session must not be null",
"path": "/getUser/10/pl"
}