我有一个包含大量选择元素的表单。在每个选择元素的模糊时,我需要检查用户是否从下拉列表中选择了一个值。如果他没有选择值,则应突出显示该下拉列表。
$('#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>');
}
});
现在,如果我点击下拉列表并且没有选择值并进入下一个字段,则发出警报($('option:selected')。val());给我空洞的警报。如果我选择任何值,警报再次给我空值。所以总是给出空警报,它不会突出显示。但是如果我使用$('#dropdownID')。val();它正确地给了我价值。那怎么能处理这种情况呢?
答案 0 :(得分:0)
我把它剥离到最低限度,这样很容易理解。
你应该这样做:
$('select').blur(function(){
if($(this).val() == 0){
//not selected
$(this).addClass('high');
}
}).change(function(){
if($(this).val() != 0){
//selected
$(this).removeClass('high');
}
});
并非我添加了更改触发器,因为否则当您选择一个选项时,它看起来仍然是错误的选项,希望这是您的目标功能。
以防万一,我正在连接函数,它与执行this相同。