Disable submit until form is filled javascript

I need to disable the submit button until all fields are filled with the rules any tips?

window.onload = $("input[type=submit]").attr("disabled", "disabled");
$(function(){   
                    $("input[type=submit]").attr("disabled", "disabled");
                    var total = document.getElementById('valor_total'),
                    descontado = document.getElementById('valor_descontado'),
                    valor_final = document.getElementById('valor_final'),
                    vendedor = document.getElementById('vendedor'),
                    cliente = document.getElementById('cliente'),
                    no_contrato = document.getElementById('contrato'),
                    validation;

                        var f_total = total.value;
                        var f_descontado = descontado.value;
                        var f_final = valor_final.value;
                        var f_vendedor = vendedor.value;
                        var f_cliente = cliente.value;
                        var f_no_contrato = no_contrato.value;

                        $("#numero_contrato").blur(function() {

                        if ( f_vendedor == "0" || f_cliente == "0" || f_no_contrato == "" || f_total == "0,00" || f_final == "0,00") {
                        validation = false;
                        } else {
                        validation = true;
                        }
                        if (validation = true) {
                        $("input[type=submit]").removeAttr("disabled"); 
                        } else {
                        $("input[type=submit]").attr("disabled", "disabled");
                        }
                        });
                });

what i'm doin wrong?

I want that user type in the field with id numero_contrato the function runs and enable or not the submit

Upvotes: 1

Views: 130

Answers (1)

Jon
Jon

Reputation: 1234

For starters, try fixing this conditional:

if (validation === true) {
     $('input[type=submit]').removeAttr('disabled'); 
} else {
     $('input[type=submit]').attr('disabled', 'disabled');
}

You had a single equals which is used for assignment. You want double or preferably, triple equals. But you can drop those entirely since you're using a boolean: if (validation) { ... }

Upvotes: 1

Related Questions