在克隆字段

时间:2016-09-26 18:21:59

标签: javascript jquery

我在使用插件Addel克隆的表单上有一些字段。

但是当我克隆它们时,该功能不起作用。 我的代码如下:

  <!-- Valor -->
            <div class="form-group col-sm-2">
                {!! Form::label('valor', 'Valor:') !!}
                <div class="input-group">
                    <div class="input-group-addon">
                        <i class="fa fa-money"></i>
                    </div>
                    {!! Form::text('valor[]', null, ['class' => 'form-control','id' => 'valor']) !!}
                </div>
            </div>

            <!-- Desconto -->
            <div class="form-group col-sm-2">
                {!! Form::label('desconto', 'Desconto:') !!}
                <div class="input-group">
                    <div class="input-group-addon">
                        <i class="fa fa-percent"></i>
                    </div>
                    {!! Form::text('desconto[]', null, ['class' => 'form-control','id' => 'desconto']) !!}
                </div>
            </div>

            <!-- Valor Total -->
            <div class="form-group col-sm-2">
                {!! Form::label('valor_total', 'Valor Total:') !!}
                <div class="input-group">
                    <div class="input-group-addon">
                        <i class="fa fa-money"></i>
                    </div>
                    {!! Form::text('valor_total[]', null, ['class' => 'form-control','id' => 'valor_total', 'readonly']) !!}
                </div>
            </div>

javascript函数:

 <script>
    function moeda2float(moeda) {
        //retirar os pontos
        moeda = moeda.replace(".", "");

        //mudar a virgula pelo ponto
        moeda = moeda.replace(",", ".");

        //retornar em formato float
        return parseFloat(moeda);

    }

    function float2moeda(num) {
        x = 0;

        if (num < 0) {
            num = Math.abs(num);
            x = 1;
        }
        if (isNaN(num))
            num = "0";

        cents = Math.floor((num * 100 + 0.5) % 100);
        num = Math.floor((num * 100 + 0.5) / 100).toString();

        if (cents < 10)
            cents = "0" + cents;

        for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
            num = num.substring(0, num.length - (4 * i + 3)) + '.' + num.substring(num.length - (4 * i + 3));

        ret = num + ',' + cents;

        if (x == 1)
            ret = ' - ' + ret;

        return ret;
    }

    function calcular() {
        var total = 0;

        //recuperar o valor e transforma-lo em float
        var valor = $('#valor').val();
        valor = moeda2float(valor);

        //recuperar o valor e transforma-lo em porcentagem
        var desco = $('#desconto').val();
        desco = desco / 100;

        //calcular
        total = valor - valor * desco;

        //retornar o total em formato de moeda
        return float2moeda(total);
    }


    $('#valor, #desconto').blur(function(){
        $('#valor_total').val(calcular());

    });
</script>

0 个答案:

没有答案