【发布时间】:2015-10-30 21:27:48
【问题描述】:
如何使用 javascript 或 jQuery 更改下拉列表的选定选项?
<select id ="someId" name="someName">
<option>One</option>
<option>Two</option>
<option>Three</option>
</select><br>
<label>item1:</label>
<input type="text" name="item1" value= <%= someValue %>><br>
<label>Line item2:</label>
<input type="color" name="item2" value= <%= someValue1 %>><br>
<label>item3:</label>
<input type="number" name="item3" min=0 value= <%= someValue2 %>><br>
<label>item4:</label>
<input type="color" name="item4" value= <%= someValue3 %>><br>
我将这个 html 保存在一个名为 template 的变量中。我如何在下拉列表中获取和设置选定的选项,因此结果将是相同的模板,并选择了三个选项之一。先感谢您。结果示例:
<select id ="someId" name="someName">
<option selected>One</option>
<option>Two</option>
<option>Three</option>
</select><br>
<label>item1:</label>
<input type="text" name="item1" value= <%= someValue %>><br>
<label>Line item2:</label>
<input type="color" name="item2" value= <%= someValue1 %>><br>
<label>item3:</label>
<input type="number" name="item3" min=0 value= <%= someValue2 %>><br>
<label>item4:</label>
<input type="color" name="item4" value= <%= someValue3 %>><br>
【问题讨论】:
-
不确定“结果将是选择了三个选项之一的相同模板”是什么意思。您是否尝试检查
<select>及其<options>标记,然后构建一个单独的标记块,将它们列为<inputs>和<labels>? -
另外,当您说“我将此 html 保存在变量中”时,您的意思是什么? JavaScript 变量?你能提供那个代码吗?
-
我在这里使用 text.js 和 Backbone.define([ "backbone.marionette", "text!/js/path/template.html" ], function( Marionette, template ) {//我可以使用变量模板});
-
从架构上讲,您的代码中发生的事情比您提供的要多得多。执行此操作的 Backbone/Marionette 方法是创建一个 Backbone.Collection 来存储您的选项(每个选项都是一个 Backbone.Model)。选项模型具有
selected属性。然后你可以创建一个 Marionette.CollectionView 来呈现集合。你的 CollectionView 会有一个模板(例如 Underscore 或 Handlebars)注入模型的数据并呈现两组标记。 -
问题是下拉菜单中的选项是常量,我不需要单独的视图。它们总是相同的(一、二、三)。那么为什么我不能通过选项获取选择元素并获取/设置所需的值?
标签: javascript jquery html templates