Вы находитесь на странице: 1из 2

php - Como recuperar valores de campos carregados com jQuery - Sta...

1 de 2

http://pt.stackoverflow.com/questions/10582/como-recuperar-valores-d...

registrar

log-in

tour

Stack Overflow em Portugus um site de perguntas e respostas para programadores profissionais e entusiastas. 100% gratuito
e no requer registro.

ajuda

Como recuperar valores de campos carregados com jQuery


Ol, recentemente deparei-me com um problema ao carregar contedos de div dinamicamente utilizando jQuery, mas acontece que
quando carrego o contedo para essa div, no consigo recuperar os valores que so enviados dela.
O contedo carregado na div um formulrio, que quando clicado o boto "adicionar", ele carrega uma outra funo no evento "onclick"
desse mesmo boto, mas quando clico nesse boto a div retorna ao valor definido no default do switch e no carrega a funo do
evento colocado no boto.
Um dos formulrios carregados nessa div o de adio de produtos:
<form method="POST">
<input type="text" name="produto"/>
<input type="number" name="preco"/>
<textarea name="descricao"></textarea>
<select name="categoria">
<option value="1">1</option>
<option value="1">1</option>
</select>
<button onclick="add()">Adicionar</button>

Por exemplo, ao accionar o boto "Adicionar", caso a funo add() fosse executada sem erro, que fosse exibida uma mensagem na div
"staus" e se mantivesse na mesma pagina em vez do retorno a pgina padro
OBS: na funo add() recolhe-se os dados vindos do formulrio. Parte do script que trata desse formulrio:
produto = $('input[name=xxx]').val();
$.post('adicionar.php',{produto:produto},function(i){$('#staus').html(i)});

http://jsfiddle.net/Xb576/1/
php

jquery

html

editada 27/03/14 s 13:30


Miguel Angelo
18,2mil

26

perguntada 26/03/14 s 11:17


Edilson

66

1.687

23

pode dar um exemplo do html que carregado para dentro da div? Sergio 26/03/14 s 14:25
O exemplo encontra-se disponvel desde que eu publiquei a pergunta, no final da pergunta. Edilson
27/03/14 s 0:24
Edilson, o que eu queria ver o contedo que voc vai buscar dinamicamente. O Formulrio e o resto do
conteudo que carregado. Sergio 27/03/14 s 9:18

2 Respostas

EDIT: a div #staus est dentro do elemento #direita que o target do mtodo load , e
portanto, ser substituida pelo form que est vindo do servidor. Por isso, ao clicar no boto, a
div #status no vai mais existir, pois ela foi apagada da pgina.
load

assncrono

O mtodo load do jquery assncrono. Para ter acesso aos elementos trazidos pelo mtodo
load do jquery, voc deve adicionar uma funo de callback para quando o request estiver
pronto:
$('#direita').load("url",
function (responseText, textStatus, XMLHttpRequest) {
if (textStatus == "success") {
// o request funcionou e os elementos j devem estar disponveis
// aqui voc pode associar eventos aos elementos trazidos via AJAX
}
if (textStatus == "error") {
// o request no funcionou, voc ter de informar o usurio de que
// algo deu errado
}
}

Outras observaes no seu cdigo


O case do switch se faz colocando apenas o valor a ser comparado, e no fazendo uma
atribuio no case .

27/10/2015 13:10

php - Como recuperar valores de campos carregados com jQuery - Sta...

2 de 2

http://pt.stackoverflow.com/questions/10582/como-recuperar-valores-d...

switch(mostrar){
case 'add': // errado: case mostrar = 'add'
break;
case 'editar': // errado: case mostrar = 'editar'
break;
default:
}

editada 27/03/14 s 13:23

respondida 26/03/14 s 13:43


Miguel Angelo
18,2mil

26

66

Ignorando o switch, e passando a parte em que eu no consigo pegar o valor dos selectores carregados
nessa div -, porque o switch ainda assim funciona, embora eu tenha passado um argumento a mais a
condio continua correcta Edilson 26/03/14 s 13:47
Est bem, de momento estou no linux, mas testarei o cdigo assim que possvel, para j obrigado
Edilson 26/03/14 s 14:30
No funcionou, faz a mesma coisa que o meu script fazia :s Edilson 27/03/14 s 0:23

Isso acontece porque ao delegar o evento ao boto, este ainda no existe no DOM. Para que
o evento funcione com um elemento que ainda ser carregado no DOM, voc pode delegar o
evento para um elemento pai que j exista e adicionar um filtro para o seletor realmente
desejado.
Exemplo:
$(document).on('click', 'button', function(event) {
//
});

Sendo que $(document) o elemento para qual o evento delegado, e


corresponde a um possvel elemento que j existe ou surgir dentro de
editada 26/03/14 s 11:46

'button'

o filtro que
.

$(document)

respondida 26/03/14 s 11:24


Diego Lopes Lima
1.802

18

S para esclarecer, o meu problema no simplesmente o evento, porque eu no consigo sequer pegar os
valores dentro dessa mesma div, e o meu objectivo pegar os valores do formulrio na div. Tipo imprimir um
alert contento o valor do input nessa div por exemplo. Edilson 26/03/14 s 13:44

27/10/2015 13:10

Вам также может понравиться