我有两个日期选择器:
<div class='input-group date datepicker1'>
<input data-format="dd/mm/yyyy" name="startDate" placeholder="DD/MM/YYYY" type='text' class="form-control" required/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<div class='input-group date datepicker2'>
<input data-format="dd/mm/yyyy" name="endDate" placeholder="DD/MM/YYYY" type='text' class="form-control" required/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
我需要在更改时(无需提交表单)在两个日期选择器中选择值,并将这些值传递给我的控制器,这样我就可以减去它们的值,并获得这两个日期之间的差异。
求你了,救命!
将ID标记添加到HTML输入片段中,以便更容易地引用它们。
你摘录,更新
<div class='input-group date datepicker1'>
<input id="inputOne" data-format="dd/mm/yyyy" name="startDate" placeholder="DD/MM/YYYY" type='text' class="form-control" required/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<div class='input-group date datepicker2'>
<input id="inputTwo" data-format="dd/mm/yyyy" name="endDate" placeholder="DD/MM/YYYY" type='text' class="form-control" required/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
现在,由于我们使用的是非活动节点,我们可以使用JS快速引用输入,然后就可以轻松地获取值并观察更改事件。注意:输入字段有一个特定的事件要监听,它不像onchange那样有bug或漏洞。
JS获取值的方式如下:
var inptOne = document.querySelector('#inputOne');
var inptTwo = document.querySelector('#inputTwo');
function getValueOne() {
var valOne = inptOne.value;
return valOne
}
function getValueTwo() {
var valTwo = inptTwo.value;
return valTwo
}
// NOTE THE USE OF "input" INSTEAD OF "onchange"
// THIS WORKS NICELY WITH INPUT FIELDS
document.body.addEventListener("input", getValueOne, false);
document.body.addEventListener("input", getValueTwo, false);
上面的代码将允许您进一步操作输入值。
一种方法是使用g:link标记。
你可以查看http://grails.github.io/grails-doc/3.0.x/ref/Tags/link.html了解更多信息。
或者您可以只使用普通的g:textfield标签。
<g:textField name="startDate" required="" value="${yourDomainClassInstance?.startDate}"/>