为该选项添加值

时间:2013-03-09 21:21:20

标签: javascript node.js ejs geddy

我正在尝试使用Geddy框架中的EJS(嵌入式javascript)创建一个select元素。我想要做的就是(只是一个例子):

<select>
  <option value="int"> Integer </option>
  <option value="float"> Single precision decimal point </option>
</select>

我没有找到任何例子......我知道要创建像

这样的选择
<select>
  <option value="X"> X </option>
  <option value="Y"> Y </option>
</select>

我必须写

<%- contentTag('select', ['X', 'Y']} %>

但如何获得我想要的东西?

更新:

我在EJS文档中找到了 select_tag ,但它无法识别......我也尝试过像

这样的混合体
<%- contentTag('select', [{value: NumberTypeEL.NonNegativeInteger, text:'nonnegative integer'}, {value: NumberTypeEL.Integer, text: 'integer'}, {value: NumberTypeEL.Decimal, text: 'decimal'}, {value:NumberTypeEL.Fraction, text:'fraction'}], {class:'span6', name:'numberType'}) %>

但仍然没有。还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

在新版本中有一个新的selectTag。它的工作方式与您引用的EJS示例类似,因此您可以传递一组对象。它还允许您指定selectedOption。您仍然可以使用contentTag("select"...)并使用对象数组,但是,对于contentTag,您无法选择选项。

另一种方法是使用contentTag并传递一个字符串而不是像

这样的数组
contentTag('select', "<option value=\"1\" selected>Text 1</option>");

请查看geddyjs.org/documentation上的文档并查找selectTag

注意:文档会在一夜之间更新,所以当你去那里时它可能不存在,我现在正在复制它。

<强> selectTag

`selectTagString(optionsArray,selectedOption,htmlOptions)

使用给定的optionsArray创建HTML选择标记以创建HTML选项元素。

optionsArray可以是字符串,数字或具有值和文本属性的对象的数组,分别用于value属性和option元素内容。

例子:
selectTag(['geddy', 'alex', 'neil'])
// => '<select><option value="geddy">geddy</option><option value="alex">alex</option><option value="neil">neil</option></select>'

selectTag(['open', 'close'], todo.status, { class:'span6', name:'status' })
// => '<select class="span6" name="status"><option selected="selected" value="open">open</option><option value="close">close</option></select>'

selectTag([{value: 1, text: "Text 1"}, {value: 2, text: "Text 2"}], 2)
// => <select><option value="1">Text 1</option><option selected="selected" value="2">Text 2</option></select>