Condition not to send field in ajax

Asked

Viewed 76 times

0

Hello!

Is there any way not to send the password field via ajax, if it is empty ?

As it is, it is sending as empty and replacing the field value with empty, so I would like to send this field, only if it is different from empty.

function form_objeto() {    
    var senha = $('#txt_senha').val();
    if (senha !== null){        
        _obj_operador.nome     = $('#txt_nome').val();
        _obj_operador.cpf      = remove_mascara($('#txt_cpf').val());
        _obj_operador.login    = $('#txt_login').val();
        _obj_operador.senha    = $('#txt_senha').val();
        _obj_operador.situacao = $('#sel_situacao').val();

    } else {
        _obj_operador.nome     = $('#txt_nome').val();
        _obj_operador.cpf      = $('#txt_cpf').val();
        _obj_operador.login    = $('#txt_login').val();
        _obj_operador.situacao = $('#sel_situacao').val();

    }
}
//Função Salvar
function salvar() {
    form_objeto();
    if (salvar_operador()) {        
	    atualizar_tabela();
	    $('#modal_operador').modal('hide');
	toastr.success('Operador salvo com sucesso');
     }
}
//Método Salvar
function salvar_operador() {
     var url;
     if(_metodo_salvar == 'novo') {
	url = "operador/novo";
     } else {		
	url = "operador/atualizar";
     }
	
	$('#btn_salvar').html('<i class="fa fa-spinner fa-spin"></i> Salvando');
	$('#btn_salvar').attr('disabled', true);
	
    var ret;
    $.ajax({
        type: 'POST',
        async: false,
        datatype: 'json',		
		url : url,
		data: { 'objeto': JSON.stringify(_obj_operador) },
        success: (function (data) {
            _obj_operador = data;            
			$('#btn_salvar').html('<i class="fa fa-save"></i> Salvar');
            $('#btn_salvar').attr('disabled', false);
            limpar_modal();
            ret = true;
		}),
        error: (function (erro) {
            //TrataErroAjax(erro);
			alert(erro);
            ret = false;
		})
	});
    return ret;
}

1 answer

1


There is, but consider putting that validation into your backend, is more secure, and you can create other validations besides this... you can remove a property from an object using the delete.

function form_objeto() {    
 var senha = $('#txt_senha').val();
 if (senha !== null){        
    _obj_operador.nome     = $('#txt_nome').val();
    _obj_operador.cpf      = remove_mascara($('#txt_cpf').val());
    _obj_operador.login    = $('#txt_login').val();
    _obj_operador.senha    = $('#txt_senha').val();
    _obj_operador.situacao = $('#sel_situacao').val();

 } else {
    delete _obj_operador.senha; //aqui você está removendo a senha

    _obj_operador.nome     = $('#txt_nome').val();
    _obj_operador.cpf      = $('#txt_cpf').val();
    _obj_operador.login    = $('#txt_login').val();
    _obj_operador.situacao = $('#sel_situacao').val();

 }
}

Browser other questions tagged

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