A função formatarPeso() do post funciona perfeitamente, mas esta fixada a um ID e preciso que todos os inputs da classe ".editsFRA" executem, por isso preciso identificar em qual deles o evento onkeyup esta sendo disparado. Estou tentando pelo this, mas algo esta errado na declaração dessa função.
$(".editsFRA").on("keyup", function() {
var elemento = $(this).prop('id');
//var elemento = document.getElementById('cPesoMercFRA');
var valor = elemento.value;
valor = valor + '';
valor = parseInt(valor.replace(/[\D]+/g,''));
valor = valor + '';
valor = valor.replace(/([0-9]{2})$/g, ",$1");
if (valor.length > 6) {
valor = valor.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
}
elemento.value = valor;
});
function formatarPeso() {
var elemento = document.getElementById('cPesoMercFRA');
var valor = elemento.value;
valor = valor + '';
valor = parseInt(valor.replace(/[\D]+/g,''));
valor = valor + '';
valor = valor.replace(/([0-9]{2})$/g, ",$1");
if (valor.length > 6) {
valor = valor.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
}
elemento.value = valor;
}`
Oi Alex,
Creio que você pode usar este seletor para buscar todos os inputs necessários:
$(":input[class=editsFRA]").each(function(index, element) {
//aqui você faz o binding do evento desejado e chama a função de formatação
});
Abs,
Marcos
Obrigado pela resposta @Marcos Jahn.
To apanhando da implementação. No caso eu vou tentar colocar no keyup, mas nao conheço a sintaxe da each. Tentei dessa forma mas nao ta certo.
$(“:input[class=editsFRA]”).each(function(index, elemento){
var elemento = $(this).prop(‘id’);
$elemento.keyup(function(){
Acho que o “element” do meu exemplo já vai te retornar o ID…
@Marcos bom dia.
Acho que eu estou “oreiando” aqui rs…
Entendi mas nao consigo botar pra funcionar…
$(“:input[class=editsFRA]”).each(function(index, element){
$(“#element”).keyup(function(){
var valor = $(“#element”).val();
Inteiro esta assim…
$(“:input[class=editsFRA]”).each(function(index, element){
$(“#element”).keyup(function(){
var valor = $(“#element”).val();
valor = valor + ‘’;
valor = parseInt(valor.replace(/[\D]+/g,‘’));
valor = valor + ‘’;
valor = valor.replace(/([0-9]{2})$/g, “,$1”);
if (valor.length > 6) {
valor = valor.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
}
$("#element").val(valor);
});
});
Pessoal, boa tarde.
@Marcos, muito obrigado. Na verdade eu estava com erro de atribuição (segue abaixo e funcionando a original), mas a sua dica tambem atende sim.
To colocando como solução.
Valeu!
$(".editsFRA").keyup(function() {
var valor = $(this).val();
valor = valor + '';
valor = parseInt(valor.replace(/[\D]+/g, ''));
valor = valor + '';
valor = valor.replace(/([0-9]{2})$/g, ",$1");
if (valor.length > 6) {
valor = valor.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
}
$(this).val(valor);
});
Obrigado por compartilhar o código funcionando, Alex! Vai ajudar outras pessoas aqui! Continue contribuindo para o fórum. Abs!