Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Grails and Jquery Datepicker

I wanted to write a code that would allow me to create the inputs such as subject, date of purchase and asset value, the input box has the attribute 'class = "datepicker"' and at first everything works properly read, but when I call the works to append to add other input (same as above) within the pages, "datepicker" no longer gives any sign of life. I show you the code:

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

<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>          
like image 900
faserx Avatar asked Apr 01 '26 08:04

faserx


1 Answers

Since the input is dynamically added to dom, you need to initialize datepicker for the element after added to dom.

$(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++
  });
});
like image 165
Pranav C Balan Avatar answered Apr 02 '26 21:04

Pranav C Balan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!