Enviar valor de campo do formulário como parâmetro para validação

Eu estou tentando enviar o valor do campo do meu formulário como parâmetro para uma função em um documento de JS, se eu fizer a própria função procurar o valor do campo funciona corretamente,porém eu queria fazer uma função para vários campos.


$("#cep").blur(function(){
    $.getJSON("//viacep.com.br/ws/"+$("#cep").val()+"/json/",function(dados){
        $("#endereco").val(dados.logradouro);
        $("#bairro").val(dados.bairro);
        $("#cidade").val(dados.localidade);
        $("#estado_endereco").val(dados.uf);
    })
});

Campo do formulário:


<input type="text" name="cep" id="cep" class="form-control" mask="99999-999" onblur="validaCep($(#cep).val)">

e gostaria de utilizar na função:


function validaCep(cep){
    $.getJSON("//viacep.com.br/ws/"+$(this).val()+"/json/",function(dados){
        $("#endereco").val(dados.logradouro);
        $("#bairro").val(dados.bairro);
        $("#cidade").val(dados.localidade);
        $("#estado_endereco").val(dados.uf);
    })
};

Guilherme,

Você pode passar o campo na chamada da função na sua tag html


<input type="text" name="cep" id="cep" class="form-control" mask="99999-999" onblur="validaCep(this)">

E então na sua função recuperar o valor independente de qual campo seja


function validaCep(campo){
    var cep = (campo.id == 'cep' ? $(campo).val() : "");
    $.getJSON("//viacep.com.br/ws/"+cep+"/json/",function(dados){
        $("#endereco").val(dados.logradouro);
        $("#bairro").val(dados.bairro);
        $("#cidade").val(dados.localidade);
        $("#estado_endereco").val(dados.uf);
    })
};

Espero ter ajudado! Abs,