有一个带有onchange功能的选择框,可以启用和显示/禁用并隐藏旁边的标签和文本框。当选择框的值为“1”时,标签正确显示,但由于某种原因,文本框虽然显示但未启用。我做错了什么?
HTML:
<select name="viewMap" id="viewMap" onchange="toggleRadius()">
<option value="1" selected="true">Yes</option>
<option value="0" >No</option>
</select>
<label for="radius" class="radius shown">Default Radius in Miles:</label>
<input name="radius" type="text" size="5" value="300" class="radius shown" />
javascript:
function toggleRadius()
{
if ($('#viewMap option:selected').val() == 1)
{
$('.radius').removeClass('hidden').addClass('shown').attr('disabled', 'false');
}
else
{
$('.radius').removeClass('shown').addClass('hidden').attr('disabled', 'true');
}
}
答案 0 :(得分:3)
我一直使用
.attr('disabled', 'disabled')
和
.removeAttr('disabled')
禁用/启用内容。我在某处读到.attr('disabled','true')更正确,但我不记得在哪里或为什么。但我会尝试使用.removeAttr('disabled')而不是将其设置为false。
答案 1 :(得分:3)
disabled属性的工作方式略有不同。您应该删除它,而不是将其设置为“false”(有点像“nowrap”属性...)
function toggleRadius()
{
if ($('#viewMap option:selected').val() == 1)
{
$('.radius').removeClass('hidden').addClass('shown').removeAttr('disabled');
}
else
{
$('.radius').removeClass('shown').addClass('hidden').attr('disabled', 'true');
}
}