0

您如何仅遍历所有选择的当前值,而不是选项?

我已经尝试过这种变化:

$('select[name^="mydropdowns"] :selected').each(function() {
   if ($(this).val() != 'Test') {
      alert("Found.");
   }
 });

“测试”是几个下拉菜单中的默认选择值,但此脚本从不返回警报。我在这里做错了什么?

4

4 回答 4

6

只需遍历选择

$('select[name^="mydropdowns"]').each(function() {
   if ($(this).val() != 'Test') {
      alert("Found.");
   }
});

val()适用于input/select/textarea元素而不适用于option元素。

来自 jQuery 文档:http ://api.jquery.com/val/

.val() 方法主要用于获取输入、选择和文本区域等表单元素的值。

于 2012-09-10T07:39:00.737 回答
1

SELECT本身不能选择,可以OPTION。这就是您没有收到警报的原因。

于 2012-09-10T07:41:45.260 回答
1

在这里,我已经为上述问题完成了完整的垃圾箱。请检查一次演示链接。

演示: http ://codebins.com/bin/4ldqp7h

HTML

<div>
  <input type="button" id="btn1" value="Check Dropdown Values" />
</div>
<div>
  <select name="mydropdowns1">
    <option value="Test">
      Test
    </option>
    <option value="Test1">
      Test1
    </option>
    <option value="Test2">
      Test2
    </option>
    <option value="Test3">
      Test3
    </option>
    <option value="Test4">
      Test4
    </option>
  </select>
  <select name="mydropdowns2">
    <option value="Test">
      Test
    </option>
    <option value="Test1">
      Test1
    </option>
    <option value="Test2">
      Test2
    </option>
    <option value="Test3">
      Test3
    </option>
    <option value="Test4">
      Test4
    </option>
  </select>
  <select name="mydropdowns3">
    <option value="Test">
      Test
    </option>
    <option value="Test1">
      Test1
    </option>
    <option value="Test2">
      Test2
    </option>
    <option value="Test3">
      Test3
    </option>
    <option value="Test4">
      Test4
    </option>
  </select>
  <select name="mydropdowns4" multiple="multiple">
    <option value="Test">
      Test
    </option>
    <option value="Test1">
      Test1
    </option>
    <option value="Test2" selected="selected">
      Test2
    </option>
    <option value="Test3">
      Test3
    </option>
    <option value="Test4" selected="selected">
      Test4
    </option>
  </select>
</div>

jQuery:

$(function() {
    $("#btn1").click(function() {
        $('select[name^="mydropdowns"]').each(function() {
            if ($(this).val() != "Test") {
                alert("Dropdown[Name=" + $(this).attr('name') + "] has selected value " + $(this).val());
            }
        });
    });
});

演示: http ://codebins.com/bin/4ldqp7h

于 2012-09-10T09:30:37.660 回答
0

如果我没记错的话,我认为问题是如何迭代选择元素中的选项。

这是您可以做到的方法。这使用浏览器的控制台(chrome 和 firefox)来显示输出

var dropdown = $("select[name='dropdown']"); 

$('option', dropdown).each(function(){
    var val = $(this).prop("value");
    console.log(val);
});
于 2013-12-20T19:46:10.763 回答