Ir para conteúdo

POWERED BY:

Arquivado

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

fred silva

input dentro li em Jquery

Recommended Posts

Olá pessoal!

Estou querendo fazer o seguinte:

- Tenho uma li dentro de uma ul

- Quero que, quando ele for clicada apareça dentro dela um input para que eu possa informar um texto

- Quando eu informar o texto e der um enter ou tab o texto que eu digitei no input passe para a li

 

Comecei assim:

$('.minha_li').click(function(){
   $(this).text(""); 
   $('input').appendTo($(this));
});

 

Até aqui se eu clicar na li aparece o input dentro dela, mas tô sem saber como fazer para:

- o foco ir para o input

- quando der enter ou tab pegar o texto do input

 

Acho que explicação tá boa...

 

Agradeço a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

oque significa: "pegar o texto do input" ? não entendi.

 

para dar o foco, basta buscar:

$('input').appendTo($(this));
$(this).find('input').focus();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian "pegar o texto do input" é apenas colocar o texto que foi digitado no input na li.

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então:

$('.minha_li input').live('keyup', function(){
   $(this).parent('li').find('span').html( $(this).val() );
});
lembrando q o teu html deve ser mais ou menos assim:

<li class="minha_li"><span></span></li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com a ajuda do Willian Bruno e mais algumas pesquisas. tá quase funcionando do jeito que eu quero.

O código ficou assim:

$('.external_event').click(function(){//Quando clicar na li           
   $(this).text(""); 
   $('<input>').attr({type:'text',name:'agenda',placeholder:''}).addClass('evento').appendTo($(this));
   $('.evento').focus();                      
});
        
$('.evento').live('keyup', function(e){//Ao pressionar alguma tecla                       
   if(e.keyCode == 13){//Se a tecla pressionada for enter                
      $('.external_event').text($(this).val());  
      $(this).hide();
   }
});

 

Porém, surgiu uma dúvida:

Fui ver o código html gerado na página após clicar na li e digitar o texto, e o texto que está na li é o texto antigo que foi definido inicialmente para ela.

Pergunta: Tem como eu alterar isso em tempo de execução?

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc não consegue ver no codigo fonte oque vc altera com js.

 

para "ver" em tempo de execução vc precisa usar o firebug ou o inspecionar elemento dos browsers.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi...

O grande problema é que eu arrasto esta li e coloco dentro de um Calendar (tipo uma agenda), então quando eu arrasto o conteúdo que aparece é o conteúdo antigo e não o que eu digitei.

Por isso perguntei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. então parece q o teu script de agenda é q está pegando o valor "antigo".

 

teria q mexer nele e corrigir para pegar o valor depois de alterado.

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.