Search code examples
javascriptjquerygrailsgsp

use onblur to multiplicar <g:field> grails


hi i want to multiply the values ​​of my box for a decimal value and display it in other textbox with onblur.

<script type="text/javascript">
$(document).ready(function () {
    $("#Agregar") {
        var pred = $("#predis").val();

        var result = parseFloat(pred) * 0.15;


        $("#pagoTotal").val(result);
    });
});

</script>

The problem is that the function does nothing

<g:field name="predis" id="predis" type="number" onblur="Agregar()" value="${predisInstance.predis}" required=""/>
<g:field name="pagoTotal" id="pagoTotal" type="number" value="${pagoTotalInstance.pagoTotal}"   required=""/>

Solution

  • Actually you don´t have a grails problem. It is a javascript problem. Get the inputs by name.

    (function($){
    	$(document).ready(function(){
      	$('input[name="predis"]').on('blur', function(){
        	agregar($(this));
        });
      });
      
      function  agregar(predis){
      	var predis = $(predis);    
        var pred = predis.val();
        var result = parseFloat(pred) * 0.15;
        $('input[name="pagoTotal"]').val(result);
      }
    })(jQuery);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    
    <!--The <g:field ...> tags would parse to something similar to the following hmtl   -->
    <input name="predis" id="predis" type="number"  value="0" required=""/>
    <input name="pagoTotal" id="pagoTotal" type="number" value="0"   required=""/>