为 <select> 元素设置 <option>

setting <option> for <select> element

我正在通过数据库接受一个值。这是一个 select 框,有离线和在线两个选项。

问题是这段代码不起作用:

<select value="<%=app.selectedValue%>"> 
 <option value="offline">Offline</option>
 <option value="online">Online</option>
</select>

select的值属性要从数据库中获取。我同样使用 underscore 的模板引擎。

我从数据库中收到了正确的值,但没有在 select 元素上设置它。 任何人都可以帮助我如何从数据库中获取值,然后将值动态设置为 select 元素,以便正确的选项是 selected?

PS:我知道 selected="selected" 属性。问题是我如何动态地使用它。

PPS:在使用 Backbone Marionette JS 框架的 MVC 结构中使用它。因此,我们将不胜感激。

我不知道 backbone.js 但我认为你应该这样做:

我希望 app.selectedValue 结果是对还是错。

<select> 
 <option value="offline" selected="<%=app.selectedValue%>">Offline</option>
 <option value="online" selected="<%=app.selectedValue%>">Online</option>
</select>

因为我们需要在选项中使用 selected="selected" 而不是 select 元素本身。

使用此代码即可

<select >
<option>select</option>
    <option value="offline" <%if(app.selectedValue =="offline"){ %>selected="selected"<%} %>>Offline</option>
    <option value="online" <%if(app.selectedValue =="online"){ %>selected="selected"<%} %>>Online</option>
</select>

您可以用其他方式使用 jstl 标签来做同样的事情

另一种选择是从您的模板中取出该逻辑并在您的 Backbone 视图的 render 方法(或 Marionette 的 onRender 事件)中处理它,例如:

// ... within the render() method
$("#out").html(this.template());  // render the template
$("#out").children("select").val(this.options.app.selectedValue);  // select option based on value

示例代码: http://codepen.io/anon/pen/vOwMPN?editors=101