【发布时间】:2013-11-19 04:26:13
【问题描述】:
我有一个包含很多选择元素的表单。在每个选择元素的模糊中,我需要检查用户是否从下拉列表中选择了一个值。如果他没有选择值,则应突出显示该下拉列表。
$('#test_form .class_dd').blur(function () {
var input = $('option:selected').val();
alert($('option:selected').val());
alert(!($('option:selected').val()));
input.next('div.error_text').remove();
input.removeClass('highlight');
if (!input) {
input.removeClass('green');
input.addClass('highlight');
var $msg = $(this).attr('title');
input.after('<div class="error_text">' + $msg + '</div>');
}
});
现在,如果我单击下拉菜单并且不选择值并转到下一个字段,则 alert($('option:selected').val());给我空警报。如果我选择警报再次给我的任何值空值。所以总是给出空警报,它不会被突出显示。但是如果我使用 $('#dropdownID').val();它给了我正确的价值。那么如何处理这种情况呢?
【问题讨论】:
-
尝试
$('option:selected').val()而不是$('option:selected').text()。.text()在你的情况下总是被填满。 -
我试过了......但这给了我空警报和第二个警报的真实
-
这不是你想要的吗?
-
但是即使用户从下拉列表中选择一个值,它也会给出一个空警报..所以我很困惑
-
比你没有给选项一个值。您的选项应类似于
<option value="somevalue">sometext</option>。对于说“选择任何一个值”的值,它应该是<option>Choose any one value</option>。 (.text()将始终被填充,.val()不会)