【问题标题】:Grails and Jquery DatepickerGrails 和 Jquery 日期选择器
【发布时间】:2016-09-11 09:47:51
【问题描述】:

我想编写一个代码,允许我创建主题、购买日期和资产价值等输入,输入框具有属性“class= “datepicker””,起初一切正常,但当我调用作品追加以在页面中添加其他输入(与上述相同)时,“datepicker”不再给出任何生命迹象。 我给你看代码:

    <div class="well bs-component" ><fieldset><div id="elencoBeni">
        <div class="input-group">
            <span class="input-group-addon">Oggetto</span>
            <g:textField class="form-control" placeholder="Oggetto" name="oggetto" id="oggetto" />
            <span class="input-group-addon"><span class="glyphicon glyphicon-calendar" ></span></span>
            <g:textField class="form-control datepicker" placeholder="Data acquisto" name="dataAcquisto" id="dataAcquisto" />
            <span class="input-group-addon">Valore</span>
            <g:textField class="form-control" placeholder="Valore" name="valoreBene" id="valoreBene"/><br/>
        </div><br/>
    </div>
        <label class="btn btn-success" id="aggiungiOggetto" name="aggiungiOggetto"  >+</label>
    </fieldset></div>

jquery函数:

<g:javascript>
$(document).ready(function(){
        $('.datepicker').datepicker({
              language: 'it'
        });    var i = 0;
        $("#aggiungiOggetto").click(function(){
            $("#elencoBeni").append('<div class="input-group"><span class="input-group-addon">Oggetto</span><input type="text" class="form-control" placeholder="Oggetto" name="oggetto'+i+'"  id="oggetto'+i+'"/><span class="input-group-addon"><span class="glyphicon glyphicon-calendar" ></span></span><input type="text" class="datepicker form-control" placeholder="Data acquisto" name="dataAcquisto'+i+'" id="dataAcquisto'+i+'"/><span class="input-group-addon">Valore</span><input type="text" class="form-control" placeholder="Valore" name="valoreBene'+i+'" id="valoreBene'+i+'"/><br/></div><br/>');

            i++
        });     </g:javascript>          

【问题讨论】:

    标签: javascript jquery html grails datepicker


    【解决方案1】:

    由于输入是动态添加到dom的,所以添加到dom后需要为元素初始化datepicker。

    $(document).ready(function() {
      $('.datepicker').datepicker({
        language: 'it'
      });
      var i = 0;
      $("#aggiungiOggetto").click(function() {
        $("#elencoBeni").append('<div class="input-group"><span class="input-group-addon">Oggetto</span><input type="text" class="form-control" placeholder="Oggetto" name="oggetto' + i + '"  id="oggetto' + i + '"/><span class="input-group-addon"><span class="glyphicon glyphicon-calendar" ></span></span><input type="text" class="datepicker form-control" placeholder="Data acquisto" name="dataAcquisto' + i + '" id="dataAcquisto' + i + '"/><span class="input-group-addon">Valore</span><input type="text" class="form-control" placeholder="Valore" name="valoreBene' + i + '" id="valoreBene' + i + '"/><br/></div><br/>');
    
        // initialize datepicker again, which includes the dynamically added element
        $('.datepicker').datepicker({
          language: 'it'
        });
    
        i++
      });
    });
    

    【讨论】:

      【解决方案2】:

      因为新元素没有绑定.datepicker()

      代替:

      $('.datepicker').datepicker({
            language: 'it'
      });
      

      使用:

      $('body').on('focus',".datepicker", function(){
          $(this).datepicker({
            language: 'it'
          });
      });
      

      【讨论】:

        猜你喜欢
        • 2015-09-10
        • 1970-01-01
        • 2012-09-11
        • 2011-08-17
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        • 1970-01-01
        相关资源
        最近更新 更多