在gsp中生成选项动态

时间:2014-07-17 13:52:01

标签: grails

我试图在我的GSP文件中构建生成动态选择项。但不知怎的,它并没有按我想要的方式行事,因为它给了我一个""?

我试图建立的方式:

<select name="type" id="type">
    <option value="CHINESE">Chinese Food</option>
    <option value="JAPANESE">Japanese Food</option>
    <option value="KOREAN">Korean Food</option>
</select>

它以""

以奇怪的方式生成
<select name="type" id="type">
    " <option value="CHINESE">Chinese Food</option><option value="JAPANESE">Japanese Food</option><option value="KOREAN">Korean Food</option>"
</select>

javascript代码:

var foodTypes = '<%
    def f = "";
    food.type.FoodType?.values().each() {
        f +=  "<option value=\""+ it.name() +"\">" + it.description + "</option>";
    }
    out << f ;
    %>';

html += '<select name="type" id="type"> ' + foodTypes + ' </select>'

还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

是的,你可以直接做,不用javascript:

<g:select name="type" from="${food.type.FoodType?.values()}" value="${name}"
      optionKey="name" optionValue="description"/>

您可以查看:

http://grails.org/doc/latest/ref/Tags/select.html

或者如果您需要javascript,您可以这样做:

var foodTypes = '<%
def f = "";
food.type.FoodType?.values().each() {
    f +=  "<option value='${it.name()}'\>${it.description}</option>";
}
out << f ;
%>';

   html += '<select name="type" id="type"> ' + foodTypes + ' </select>'