【问题标题】:Grails if checks html select valueGrails if 检查 html 选择值
【发布时间】: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


【解决方案1】:

由于您想在客户端工作,您只需要使用Javascript

function checkRows(rowNumber) 
{ 
    var value= $('#select1').val(); 
    return rowNumber < elem;
}

如果你想在选择值改变时触发函数使用

$(document).ready(function () { 
   $('#select1').change(function() {
       checkRows(34 /* use your value here */);
   }); 
});

【讨论】:

  • 这不是我想要的。在我的 if 语句中,我有一个渲染模板,当我更改 select 的值时,我想再次渲染这个模板,但保存我已经在那里输入的内容(例如,如果我的模板中有一个文本字段)。
  • 好的。但这意味着您需要在服务器端执行此操作。请提供您的完整视图并尽可能清楚地描述您的用例。
  • #saw303 我有点搞砸了。我想创建一个动态表,例如在开始时它可能有 2 行和列,然后我希望能够通过单击按钮来放大/减少行/列的数量(例如通过单击按钮/按钮),我想要将已填充的表格保存在 ajax 中,然后使用新的行/列数渲染表格,并用之前的值填充先前填充的单元格(新单元格将为空)。例如填充表 2x2 a a a a 当我将此表放大到 3x2 时,我希望该表如下所示: a a a a _ 其中 _ 是一个空单元格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 2012-09-03
  • 2012-12-28
  • 1970-01-01
相关资源
最近更新 更多