Spidey, onde vc viu que fazer atribuições com vírgula é má prática?
isso é verdade em várias linguagens, mas em javascript isso é bem normal, e faz parte de uma das convenções mais adotadas. De qqer forma é uma questão de gosto só, não é uma má prática (em javascript)
O problema é que gera expressões longas e ilegíveis. Se for pra compactar o código, que use um compactor como o do YUI Compressor ou o JSMin.
Mas é bem opinião mesmo.
Em relação ao JSON, ele pega apenas valores nativos, certo? ele não faz acesso a getters ou setters não?
Pois tenho uma classe que tem um atributo Date chamado nascimento.
Para puxá-lo, tenho um getNascimento() que pega o valor cru dele ( ex: 2011-02-28 ). e outro getter getNascimentoFormatado() que retorna em String o valor da data bonitinha ( ex: “28/02/2011” ).
A dúvida é, para puxar a data bonitinha na tela, terei então que criar um objeto String na minha classe de nome, por exemplo: nascimentoFormatado para que o JSON possa obtê-lo?
Eu sei que meus problemas estão seguindo outro rumo, mas como não achei um forum específico de Javascript aqui no GUJ, estou incomodando vocês e postando aqui mesmo.
$(function() {
$("#busca-nome").submit(function(e) {
$('#resultado').html(''); //limpando a div para exibir novos resultados
e.preventDefault(); //causador de problemas
$.ajax({
url: $(this).action(),
data: $(this).serialize(),
dataType: 'json',
contentType: "charset=ISO-8859-1",
success: function(json) {
// preenchendo a div de resultado
}
});
});
});
Se eu tirar o e.preventDefault();, ele simplesmente mostra o resultado do json em outra página (o que não preciso).
Se eu coloco o e.preventDefault();, ele não submita o form mas também NÃO executa o ajax.
Se eu tirar o preventDefault(), ele simplesmente executará o ajax e vai pra outra página.
Qualquer linha depois do success: function(json) { (linha 10) é ignorada
Exatamente, parceiro. Fiz EXATAMENTE o que está aí nesse código (copiei e colei, pra garantir).
O Problema é simples, ele não chega nesse return false, ele simplesmente direciona para a página com os resultados logo de cara, sem nem ler NADA abaixo da linha 09 do seu código.
E se eu coloco o return false antes, ele retorna antes de ler a função…
Será que eu sou muito azarado ou esse bug só acontece comigo?
E sim, muito obrigado pela insistência em me ajudar
Assim, sabe o que eu acho? $(this).action() existe, porque estava funcionando. Mas eu acho que ele EXECUTA a action normalmente, ignorando todo resto (tou chutando porque sou fraco de Javascript).
De qualquer forma, muito obrigado, Lucas. Obrigado mesmo!