Executar função para inputs de mesma classe

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!