我使用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标记中声明默认选项,或者是一种更好定义的方法来实现相同的结果?
答案 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);