Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal estou lendo aquele livro clean code e me deparei com um problemas, mas em javascript, segue codigo para entendimento
function iniciarValidadoresTextArea() {
if ($("#form\\:corpo-email-venda-gerencial").val() !== undefined) {
limitaTextareaCorpoEmailVendaGerencial($("#form\\:corpo-email-venda-gerencial").val());
}
if ($("#form\\:corpo-email-nota-gerencial").val() !== undefined) {
limitaTextareaCorpoEmailNotaGerencial($("#form\\:corpo-email-nota-gerencial").val());
}
if ($("#form\\:corpo-email-nota-fiscal").val() !== undefined) {
limitaTextareaCorpoEmailNotaFiscal($("#form\\:corpo-email-nota-fiscal").val());
}
}
Eu sei que tem como fazer apenas um IF e passar o nome, eu tentei desta forma:
Com dois arrays:
var camposTextArea = ["#form\\:corpo-email-venda-gerencial", "#form\\:corpo-email-nota-gerencial", "#form\\:corpo-email-nota-fiscal", "#form\\:corpo-email", "#form\\:corpo-email-consignacao", "#form\\:corpo-email-pedido-venda", "#form\\:corpo-email-orcamento", "#form\\:corpo-email-cancelamento", "#form\\:corpo-email-financeiro-recibo"];
var metodosTextArea = ["limitaTextareaCorpoEmailVendaGerencial", "limitaTextareaCorpoEmailNotaGerencial", "limitaTextareaCorpoEmailNotaFiscal", "limitaTextareaEmail", "limitaTextareaEmailConsignacao", "limitaTextareaEmailPedidoVenda", "limitaTextareaEmailOrcamento", "limitaTextareaEmailCancelamento", "limitaTextareaEmailFinanceiroRecibo"];
for (var chave = 0, valor; valor = camposTextArea[chave], chave < camposTextArea.length; chave++) {
nomeMetodo = metodosTextArea[chave];
nomeMetodo = nomeMetodo.replace('"', "");
if ($(valor).val() !== undefined) {
nomeMetodo($(valor).val());
}
console.log(chave, valor, nomeMetodo); // chave é o índice, valor é o valor
}
Mas sei que a linguagem nao permite isso, o que sugeriam, até mesmo os metodos gostaria de dar um CLEAN, segue
function limitaTextareaCorpoEmailVendaGerencial(valor) {
var quantidade = 700;
var total = valor.length;
if (total <= quantidade) {
resto = quantidade - total;
document.getElementById('corpo-email-venda-gerencial-span').innerHTML = resto;
} else {
document.getElementById('form:corpo-email-venda-gerencial').value = valor.substr(0, quantidade);
}
}
function limitaTextareaCorpoEmailNotaGerencial(valor) {
var quantidade = 700;
var total = valor.length;
if (total <= quantidade) {
resto = quantidade - total;
document.getElementById('corpo-email-nota-gerencial-span').innerHTML = resto;
} else {
document.getElementById('form:corpo-email-nota-gerencial').value = valor.substr(0, quantidade);
}
}
entro na mesma questão, sei que tem como, mas por não conseguir ver a solução gostaria que se possivel me ajudassem, grato.
Carregando comentários...