使用jquery获取下拉列表的值

时间:2013-11-07 13:37:27

标签: jquery css

我有一个包含大量选择元素的表单。在每个选择元素的模糊时,我需要检查用户是否从下拉列表中选择了一个值。如果他没有选择值,则应突出显示该下拉列表。

$('#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();它正确地给了我价值。那怎么能处理这种情况呢?

1 个答案:

答案 0 :(得分:0)

我把它剥离到最低限度,这样很容易理解。

你应该这样做:

$('select').blur(function(){
    if($(this).val() == 0){
        //not selected
        $(this).addClass('high');
    }
}).change(function(){
    if($(this).val() != 0){
        //selected
        $(this).removeClass('high');
    }
});

Here is demo

并非我添加了更改触发器,因为否则当您选择一个选项时,它看起来仍然是错误的选项,希望这是您的目标功能。

以防万一,我正在连接函数,它与执行this相同。