【问题标题】:get value of dropdowns using jquery使用 jquery 获取下拉列表的值
【发布时间】: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() 在你的情况下总是被填满。
  • 我试过了......但这给了我空警报和第二个警报的真实
  • 这不是你想要的吗?
  • 但是即使用户从下拉列表中选择一个值,它也会给出一个空警报..所以我很困惑
  • 比你没有给选项一个值。您的选项应类似于&lt;option value="somevalue"&gt;sometext&lt;/option&gt;。对于说“选择任何一个值”的值,它应该是&lt;option&gt;Choose any one value&lt;/option&gt;。 (.text() 将始终被填充,.val() 不会)

标签: jquery css


【解决方案1】:

我将其剥离到最低限度,以便于理解。

你应该这样做:

$('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一样。

【讨论】:

  • 如果您有任何疑问,请告诉我。
  • 嗨..感谢您的回复..我尝试了您的解决方案。但是当我提醒 $(this).val() 时,它总是给我 null .. 但是当我使用 $('#dropdownID').val();它正确地提醒我这个值。知道为什么会这样吗?
  • Jsfiddle 好像挂了,所以我现在使用 codepen。请看一下这个例子:codepen.io/trufa/pen/fpKmc 因为$(this).val() 似乎工作正常。对你起作用吗?你是这个意思吗?
猜你喜欢
  • 1970-01-01
  • 2016-03-26
  • 2023-03-27
  • 2011-03-31
  • 2011-11-14
  • 2014-06-19
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
相关资源
最近更新 更多