如何设置HTML下拉列表的默认值而不是选项元素?

时间:2013-12-13 11:23:46

标签: html

我使用PHPBB的改编来创建下拉列表。

  <select name="destination_path">
    <!-- BEGIN path -->
    <option value="{path.DESCRIPTION}">{path.DESCRIPTION}</option>
    <!-- END path -->
  </select>

该列表是从MySQL查询生成的,因此它是动态的。这个列表在一个表单中,当表单被触发时,我想保留(并返回)它在会话变量中的状态。我的第一个想法是在<select>语句中放置一些内容。

我知道你可以使用:

selected="option_selected" 

在相关的<option>中,但这似乎是一种混乱的方式,并且在创建标记时需要if语句来比较每个标记。

有没有办法在select标记中声明默认选项,或者是一种更好定义的方法来实现相同的结果?

3 个答案:

答案 0 :(得分:3)

简短回答:不。

select标记在其option元素中定义所选选项。如果要以不同方式实现它,您可以执行的操作是将所选选项置于顶部而不指定selected属性。如果没有selected属性,大多数浏览器会将第一个选项选为默认选项。

Ex :
 <select>
 <option value="Hi"> Hi </option>
 <option value="Hello" selected> Hello </option>
 </select>

答案 1 :(得分:2)

通过添加一点jQuery,您可以在编译列表后选择所需的选项。

jQuery Forums已经提出了类似的问题。

使用以下示例:

<select name="options">
  <option value="1">Red</option>
  <option value="2">Green</option>
  <option value="3">Blue</option>
</select>

您可以按值设置所选选项:

$('[name=options]').val( 3 ); // To select Blue

或者您可以使用以下文字设置所选选项:

$('[name=options] option').filter(function() { 
    return ($(this).text() == 'Blue'); //To select Blue
}).prop('selected', true);

jsFiddle的链接可以在this post中找到。

归功于jQuery论坛上的Godsbest

答案 2 :(得分:2)

是.... 有一种方法可以在select标签中声明默认选项

试试这个......

要首先设置默认值,您必须提及选择标记的名称,并在查找)< / strong>功能只需传递,您必须设置为默认值。

$('select[name="destination_path"]').find('option:contains("default")')
.attr("selected",true);