【问题标题】:How can i get value of selected date from datepicker in my controller?如何从控制器中的 datepicker 获取选定日期的值?
【发布时间】:2015-12-13 14:31:50
【问题描述】:

我有两个日期选择器:

 <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>

我需要在两个日期选择器 onchange 中选择值(不提交表单)并将这些值传递给我的控制器,以便我可以减去它们的值并获得这两个日期之间的差异。

请帮忙!

【问题讨论】:

    标签: grails controller datepicker selectedvalue


    【解决方案1】:

    将 ID 标记添加到您的 HTML 输入 sn-ps 以更轻松地引用它们。

    你sn-p,更新了

     <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 那样容易出错或不可靠。

    获取值的 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);
    

    上面的代码可以让你进一步操作你的输入值。

    【讨论】:

    • 嗯......谢谢......这可能很好......但是......我需要提醒你,我必须在我的控制器中获取这些值......我是新手这……
    • 这可能看起来有点令人生畏,但您已经非常接近想要到达的地方了。使用到目前为止我编写的代码,您可以访问两个输入字段的值(通过侦听器事件)。更进一步,您可以将侦听器包装在自己的函数中,然后立即调用它。或者您可以将整个 sn-p 包装在一个对象中,然后返回事件。然后从您的控制器中调用该对象。您需要帮助编写实际代码吗?
    【解决方案2】:

    一种方法是使用 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}"/>
    

    【讨论】:

      猜你喜欢
      • 2014-12-27
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      相关资源
      最近更新 更多