4

我正在使用下面的选择器来获取所有预先填充了值的表单输入。

$('input[value!=""]');

这很好用,所以我认为我可以使用以下选择器将相同的逻辑应用于我的选择元素,尽管它似乎选择了 Chrome 中的所有选择元素。

$('select[value!=""]');

下面是表单上两种选择的示例:

<select name="phone2_type" id="phone2_type">
  <option value="">Select one:</option>
  <option value="HOME">Home</option>
  <option value="CELL">Cell</option>
  <option value="BUSN">Business</option>
</select>

<select name="state" id="state">
  <option value="">Select one:</option>
  <option value="XX">Outside USA/Canada</option>
  <option value="AL" selected="selected">Alabama</option>
  <option value="AK">Alaska</option>
  ...
</select>

我想选择第二个选择,因为它已经用 select="selected" 选择了一个值

4

3 回答 3

7

value不是select标签的属性。

所以你需要尝试:

var emptySelect = $('select').filter(function() {
                     return $.trim( $(this).val() ) == '';
                  });
于 2013-02-18T18:06:26.703 回答
2

对于选择,您需要使用 JQuery 提供的特殊选择器::selected

所以

$('#state option:selected').val()

是当前选定的值。

如果您需要对选择元素本身执行某些操作,您可以执行以下操作:

$('#select option:selected').parents('select').dosomething(...)
于 2013-02-18T18:09:06.363 回答
1
$('select').has('option[selected="selected"]')

将获得选择元素。jsFiddle 示例

于 2013-02-18T18:10:26.410 回答