Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Juninho De Luca

jQuery - Pegar valor de um input sem id/class

Recommended Posts

Buenas galera,

Estou de férias do trabalho e retomei um projeto pessoal meio grandinho (é isso que vocês fazem também? huhuhuhu)

Sou programador PHP e uso o CodeIgniter + jQuery + Bootstrap pra agilizar as coisas.

Mas ontem e hoje empaquei em algo que deveria ser simples.

 

Tenho um campo de input que no onBlur roda uma função JS.

Não usei jQuery .blur porque esses inputs são arrays e são dinamicamente construídos. Podem variar de 1 a 50, dependendo da situação.

No evento onBlur no input de código, a função autopopula a descrição e busca a imagem.

Na planilha principal, fica perfeito. O problema é que cada código principal pode ser preenchido com outros códigos secundários, que também populam suas respectivas imagens. E é um p... problema.

 

Isso porque estava tentando via id. Tentei loops secundários com php, passar parâmetros JS via onBlur event, etc. E nada.

O entrave ocorre porque não há um número definido de códigos secundários. O usuário adiciona quantos forem necessários.

 

Testei algo do tipo:

<input type="text" value="" onBlur="javascript:getCodesecParams(this)" />

E no arquivo autocomplete.js

function getCodesecParams() {
    var test = $(this).val();
    alert(test);
}

Obviamente não funcionou, senão não estaria chorando as mágoas aos mestres jedis.

PS.: não dá para usar id. Talvez eu consiga alterar o código para usar .classes, mas teria que usar .next() ou .closest() para identificar a div onde a imagem deve aparecer (que também não pode usar id).

Alguma sugestão antes que eu compre uma corda para me enforcar?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não usei jQuery .blur porque esses inputs são arrays e são dinamicamente construídos. Podem variar de 1 a 50, dependendo da situação.

essa desculpa não vale.

você deveria usar o .blur sim, independente da quantidade de campos.

E na verdade, se pode variar tanto assim, ai que você deveria usar mesmo, pois iria facilitar muito o que você está fazendo.

 

Isso porque estava tentando via id. Tentei loops secundários com php, passar parâmetros JS via onBlur event, etc. E nada.

gambiarra..

 

O entrave ocorre porque não há um número definido de códigos secundários. O usuário adiciona quantos forem necessários.

na verdade não cara.. não é esse o teu problema não.

 

 

Obviamente não funcionou, senão não estaria chorando as mágoas aos mestres jedis.

Corrigindo o que estava errado:

 

function getCodesecParams(el) {
    var test = $(el).val();
    alert(test);
}
Mas ainda continua gambiarra, e você deveria sim utilizar o .blur()

Compartilhar este post


Link para o post
Compartilhar em outros sites

$("input").on('blur', function(){
    //...
});
E se vc quiser "limitar", pode usar qq seletor css:

$("form#contato input").on('blur', function(){
    //...
});
Assim só vai pegar os inputs do <form id="contato">

E por ai vai =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.