How can I change the value of the input after a condition?

Asked

Viewed 152 times

-2

I have following script

 <script type="text/javascript">

    var modaliddade;
    var produto = 43;
    var idproduto;
    var plano = "PLANO";

        //Usuarios
        $(function () {
            $("#codigouser").autocomplete({
                source: "usuarios.php",
                minLength: 2,
                select: function (event, ui) {
                    event.preventDefault();
                    $('#codigouser').val(ui.item.codigo);
                    $('#nome').val(ui.item.nome);
                    $('#cpf').val(ui.item.cpf);
                    $('#idusuario').val(ui.item.idusuario);
                    $('#modalidade').val(ui.item.modalidade);
                      modalidade = ui.item.modalidade; 
                    $('#cota').val(ui.item.cota);
                    $('#modalidadeassociado').val(ui.item.modalidadeassociado);
                }
            });
        });
        //+ produtos
        $(document).ready(function () {
            var max_fields = 32;
            var wrapper = $(".produto"); //Fields wrapper
            var add_button = $(".add-camera"); //Add button ID

            var x = 0; //initlal text box count
            $(add_button).click(function (e) { //on add input button click
                e.preventDefault();
                if (x < max_fields) { //max input box allowed
                    x++; //text box increment
                    $(wrapper).append('<div class="form-group">\
                            <input type="text" name="idproduto' + x + '" class="form-control produtoCounter" id="idproduto' + x + '"  Size="1" placeholder="Id" readonly />\
                            <input type="text" name="ean' + x + '" class="form-control produtoCounter" id="codigo' + x + '"  Size="10" placeholder="Código" readonly />\
                            <input type="text" name="nome' + x + '" class="form-control produtoCounter" id="nome' + x + '"  Size="50" placeholder="Nome" required />\
                            <input type="text" name="referencia' + x + '" class="form-control produtoCounter" id="referencia' + x + '"  Size="10" placeholder="Referencia" readonly />\
                            <input type="text" name="quantidade' + x + '" id="quantidade' + x + '"  class="form-control produtoCounter quantidade" Size="2" placeholder="Quant." onchange="somarTotais()" required />\
                            <input type="text" name="valorunitario' + x + '" id="valorunitario' + x + '" onkeydown="FormataMoeda(this,10,event)" onkeypress="return maskKeyPress(event)" class="form-control produtoCounter valorunitario" Size="5" placeholder="Valor" readonly />\
                            <input type="text" name="desconto' + x + '" id="desconto' + x + '" value="0" class="form-control produtoCounter desconto" Size="2" onchange="somarTotais()" placeholder="Desc" />\
                            <input type="text" name="desconto1' + x + '" id="desconto1' + x + '" class="form-control produtoCounter desconto1" Size="2" onchange="somarTotais()" style="display: none;" />\
                            <a href="#" class="remove-camera">Remover</a>\
                            </div>');


                    $("#nome" + x).autocomplete({
                        source: "produtos.php",
                        minLength: 2,
                        select: function (event, ui) {
                            event.preventDefault();
                            $('#idproduto' + x).val(ui.item.idproduto);
                             idproduto = ui.item.idproduto;
                            $('#nome' + x).val(ui.item.nome);
                            $('#codigo' + x).val(ui.item.codigo);
                            $('#referencia' + x).val(ui.item.referencia);
                            $('#valorunitario' + x).val(ui.item.valorunitario);
                            //$('#desconto' + x).val(ui.item.desconto);
                            $('#desconto1' + x).val(ui.item.desconto);


                        }
                    });

                }
            });

            $(wrapper).on("click", ".remove-camera", function (e) { //user click on remove text
                e.preventDefault();
                $(this).parent('div').remove();
                somarTotais();

                x--; //text box decrement

                $(".produtoCounter").each(function (elm) {
                    var count = elm + 1
                    $(this).attr("name", "ean" + count);
                    $(this).attr("value", "ean" + count);
                    x = elm + 1;
                });
            })
        });

</script>
if ((modalidade == plano) && (produto == idproduto)) {
    //muda valor do input
}

I need to change this value :

<input type="text" name="desconto' + x + '" id="desconto' + x + '" value="0" class="form-control produtoCounter desconto" Size="2" onchange="somarTotais()" placeholder="Desc" />\

When a condition is true. If it’s value, it goes from 0 to 30. You can do it?

  • 1

    Answer is yes, there is a way. Now you need to tell us where you want to put the condition, it would be better to explain what you really want to do to get a better result.

  • What exactly is the condition?

  • I just edited the code, I put the condition.I apologize I ended up going up the old code.

  • @Fernandotrilha always try to simplify your question, pasting all your logic (or most of it) will not help you find the answer. Understand your problem and put the code snippet that just represents your doubt, so you’ll get help much faster. Besides Tavez you create an imaginary context out of your real problem can be a great choice too

  • I get it, I’ll do it next time.

1 answer

1


If you create the input already with the solved value of the condition you can do this directly in the attribute value of the element just solve this condition in a variable and concatenate it in the value of the similar input you did with x;

/**
 * Variavel resolvida com a condição desejada
 */
var inputValue = ((modalidade == plano) && (produto == idproduto)) ? 30 : 0;

<input type="text" name="desconto' + x + '" id="desconto' + x + '" value="'+ inputValue +'" class="form-control produtoCounter desconto" Size="2" onchange="somarTotais()" placeholder="Desc" />

See the snippet of your changed code below:

$(add_button).click(function (e) { //on add input button click
    e.preventDefault();
    if (x < max_fields) { //max input box allowed
        x++; //text box increment
        /**
         * Variavel resolvida com a condição desejada
         */
        var inputValue = ((modalidade == plano) && (produto == idproduto)) ? 30 : 0;

        $(wrapper).append('<div class="form-group">\
            <input type="text" name="idproduto' + x + '" class="form-control produtoCounter" id="idproduto' + x + '"  Size="1" placeholder="Id" readonly />\
            <input type="text" name="ean' + x + '" class="form-control produtoCounter" id="codigo' + x + '"  Size="10" placeholder="Código" readonly />\
            <input type="text" name="nome' + x + '" class="form-control produtoCounter" id="nome' + x + '"  Size="50" placeholder="Nome" required />\
            <input type="text" name="referencia' + x + '" class="form-control produtoCounter" id="referencia' + x + '"  Size="10" placeholder="Referencia" readonly />\
            <input type="text" name="quantidade' + x + '" id="quantidade' + x + '"  class="form-control produtoCounter quantidade" Size="2" placeholder="Quant." onchange="somarTotais()" required />\
            <input type="text" name="valorunitario' + x + '" id="valorunitario' + x + '" onkeydown="FormataMoeda(this,10,event)" onkeypress="return maskKeyPress(event)" class="form-control produtoCounter valorunitario" Size="5" placeholder="Valor" readonly />\
            <input type="text" name="desconto' + x + '" id="desconto' + x + '" value="'+ inputValue +'" class="form-control produtoCounter desconto" Size="2" onchange="somarTotais()" placeholder="Desc" />\
            <input type="text" name="desconto1' + x + '" id="desconto1' + x + '" class="form-control produtoCounter desconto1" Size="2" onchange="somarTotais()" style="display: none;" />\
            <a href="#" class="remove-camera">Remover</a>\
            </div>');


        $("#nome" + x).autocomplete({
            source: "produtos.php",
            minLength: 2,
            select: function (event, ui) {
                event.preventDefault();
                $('#idproduto' + x).val(ui.item.idproduto);
                 idproduto = ui.item.idproduto;
                $('#nome' + x).val(ui.item.nome);
                $('#codigo' + x).val(ui.item.codigo);
                $('#referencia' + x).val(ui.item.referencia);
                $('#valorunitario' + x).val(ui.item.valorunitario);
                //$('#desconto' + x).val(ui.item.desconto);
                $('#desconto1' + x).val(ui.item.desconto);


            }
        });
    }
});
  • Hello Vinicius, thanks for the help.I made some adjustments and it worked out, thank you very much for the help friend.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.