2

我正在尝试检查select根据用户选择填充的框的值,一旦用户从中选择选项,此选择将​​被填充other select boxes,现在document.ready()选择为空,我需要检查此选择是否仍然为空,然后禁用按钮,否则,再次启用它。

这是我尝试过的,它感觉到投递箱是空的,但在它被填充时却不是!

if ($('#course-selection').html(null)) {
$('#show-wall-button').attr('disbaled','disabled');
}

else {
$('#show-wall-button').removeAttr('disabled');  
}

当页面加载时,这已经触发了document.ready事件!。

我也试过这个,但没有奏效

if ($('#course-selection').val(null)) {
    $('#show-wall-button').attr('disbaled','disabled');
    }

    else {
    $('#show-wall-button').removeAttr('disabled');  
    }
4

7 回答 7

1

你可以试试这个:

$('#show-wall-button').prop('disabled', $('#course-selection').is(':empty'))
于 2012-05-16T20:24:11.593 回答
0
<select id="course-selection">
   <option value="">null</option>
   <option value="1">option1</option>
</select>

如果您想获得选定的值:

if($("#course-selection option:selected").val()=="")
   $('#show-wall-button').attr('disbaled', true);
else
   $('#show-wall-button').removeAttr('disabled');

如果要获取选定的文本:

if($("#course-selection option:selected").text()=="null")
   $('#show-wall-button').attr('disbaled', true);
else
   $('#show-wall-button').removeAttr('disabled');
于 2012-05-16T20:37:02.157 回答
0

检查的内容<select>有点混乱。您如何做一些事情,例如添加一个属性data-populated="false"并将其设置为true当您填充它时。然后你可以在你的条件下检查元素的属性状态。

于 2012-05-16T20:24:32.647 回答
0

试试看:

if ($('#course-selection').val() === '') { 
   $('#show-wall-button').prop('disbaled', true);
}

else {
   $('#show-wall-button').prop('disabled', false);  
}

来自 API:http ://api.jquery.com/prop/

于 2012-05-16T20:23:51.377 回答
0
if ($('#course-selection').val(null))

应该

if ($('#course-selection').val() == '')
于 2012-05-16T20:24:02.077 回答
0

$('#course-selection option').length代替您当前使用的条件呢?无论如何,我觉得可能有更好的方法来做你想做的事,而不必检查选择框内是否有选项标签。

于 2012-05-16T20:24:04.823 回答
0

听从@Raminson 的建议

但是在示例disabled中拼写错误(disbaled)因此它永远不会disabled在填充时 removeAttr,因为您分配的属性拼写错误disbaled

于 2012-05-16T20:29:37.643 回答