【发布时间】:2014-08-20 10:40:30
【问题描述】:
我在通过 grails if 标记检查 select/grails 选择标记值时遇到问题。我的代码看起来像这样, html:
<select id="select1" name="select1">
<option value=2>2</option>
<option value=3>3</option>
</select>
或 grails 选择:
<g:select id="select1" name="select1" from="${[2, 3] }" value="2"/>
如果:
...
<g:each var="rowNumber" in = "${0..5}">
<g:if test="${rowNumber} < ${select1.value}"> <!-- or ${select1.val()} or select1.value -->
...
</g:if>
</g:each>...
代码抛出 NullPointerException,并说 select1 是一个空对象,他无法评估方法 val(),或者无法获取属性值。 任何人都知道我应该怎么做才能解决这个问题? 感谢您的帮助!
编辑
在我的 if 语句中,我有一个渲染模板,当我更改 select 的值时,我想再次渲染这个模板,但保存我已经在那里输入的内容(例如,如果我的模板中有一个文本字段)。
编辑2
我有点搞砸了。我想创建一个动态表,例如在开始时它可能有 2 行和列,然后我希望能够通过单击按钮来放大/减少行/列的数量(例如通过单击按钮/按钮),我想要将已填充的表格保存在 ajax 中,然后使用新的行/列数渲染表格,并用之前的值填充先前填充的单元格(新单元格将为空)。 例如 填充表 2x2
a a
a a
当我把这张桌子放大到 3x2 时,我希望这张桌子看起来像这样:
a a
a a
_ _
其中 _ 是一个空单元格。
【问题讨论】:
-
您无法在 GSP 中访问
select1,因为它在服务器端运行,而select1实际上存在于浏览器中。意味着你的方法是错误的。但是,如果您能解释您想要达到的目标,我们或许可以为您提供一种可行的方法。 -
#saw303 我想动态检查实际选择的值是否大于我在 foreach 循环中的变量,并且取决于结果渲染视图。我尝试使用 js 函数,但它告诉我该方法未定义。这是我的代码: ...
... js: function checkRows(rowNumber) { var elem = document.getElementById('rowsNumberSelect').val() ; if(rowNumber -
您要在哪里执行此检查?在客户端(浏览器)还是在服务器端(您的 Grails 控制器)?目前您将
Javascript(客户端)与tag libraries(服务器端)混合使用?
标签: javascript ajax grails