在纯HTML中,我可能有<select>
看起来像这样:
<select id="colors">
<option id="0" selected="selected" value="choose">Choose a color</option>
<option id="1" value="red">Red</option>
<option id="2" value="blue">Blue</option>
<option id="3" value="green">Green</option>
</select>
因此,第一个<option>
只是一个“虚拟”值;也就是说,它只是填充文本,向用户解释他们必须选择颜色。我甚至可能会在它上面添加一些样式,使其显示为灰色/禁用,以便用户知道它不是一个可行的选择。
但在Grails中,我们将模型注入选择:
// Inside ColorsController
def index() {
// Returns a list of 3 colors for: R, G, B
List<String> colors = getRedGreenAdnBlue()
render(view: "colors", model: colors)
}
// Inside colors.gsp
<g:select name="colors" from="${colors}" />
但是这只会产生:
<select id="colors">
<option id="1" value="red">Red</option>
<option id="2" value="blue">Blue</option>
<option id="3" value="green">Green</option>
</select>
看看我现在如何丢失“选择颜色”虚拟值?我知道我可以在页面加载时执行一些jQuery,将此值插入选项列表的顶部,但我想知道这是否是Grails已经配备处理的使用模式。所以我问:是否有Grails解决此问题的方法?
答案 0 :(得分:2)
使用noSelection:
<g:select name="colors" from="${colors}" noSelection="['':'Choose a color']"/>