g:每个迭代器值未在输入名称中应用

时间:2013-11-15 15:27:55

标签: grails each

所以我有一个基本的,g:每个都这样: -

<g:each in="${results}" status = "i" var="item">
            <tr id = ${i} class="${(i % 2) == 0 ? 'even' : 'odd'}" name="main">
                <td colspan="3">
                    <table id = "sub">
                        <tr>
                            <td><b>Action</b></td><td>
                            <g:select  style="width:375px;"name="events[$i].id" from="${framework.EventType.list(sort:"userEventType")}" required="required" optionKey="id" value="${item.event_id}" /></td>
                            <td><b>Object</b></td>
                            <td>


                            <input type="text" name="any[$i].id">
                            <g:select style="width:550px;"id="objectID[$i]" name="objectID[$i].id" from="${framework.Object.list(sort:"objDesc")}" optionKey="id" required="" value="${item.object_id}" class="many-to-one"/>

                            <richui:autoComplete name="autocomp[$i].id" value= "${item.object_description}" action="${createLinkTo('dir': 'object/searchAJAX')}" maxResultsDisplayed="20" minQueryLength ="3" onItemSelect="youPickedThis(id,'autocomp[$i].id')" />

                            </td>
                        </tr>
                    </table>                                
                </td>   
            </tr>
        </g:each>

这里的所有内容都是在html中使用正确的名称生成的(即[$ i]在第一个上变为[0],在第二个上变为[1],依此类推。但是第一个输入(类型文本)只需将它们全部命名为“any [$ i] .id”!

任何人都有最遥远的想法,为什么第一个输入太好了不能拿起而其他元素只是继续使用它?

1 个答案:

答案 0 :(得分:1)

我能看到的唯一区别是<input type="text">是纯HTML标记,而您使用$i的所有其他地方都是GSP标记的属性(richui:autocomplete和{ {1}})。请尝试使用g:select

${i}

我不知道短格式(不使用大括号)在GSP中是有效的 where ,但是更长的大括号形式肯定适用于所有情况。