Ir para conteúdo

Arquivado

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

Guilherme Pacheco

Problema ao passar variável com ASPAS e VÍRGULAS através do onclick

Recommended Posts

Salve Salve pessoal!

Depois te quebrar muito a cabeça, decidi vir pedir ajuda para vocês! Procurei em diversos lugares e não achei algum problema igual ao meu, com uma possível solução.

Bom, eu tenho uma aplicação que faz uma requisição externa, e o com seu retorno monto um menu, que quando clicado, deve ser chamado um função, passando via parâmetro os valores que acabou de ser retornado.


ex:

$.ajax({
url: urlDoSistema,
dataType: 'jsonp',
jsonp: 'retorno',
timeout: 5000,
success: function(data, status){

$("#manifestacoes").html("");

$.each(data, function(i,item){

var retornoManifestacao =   '<a href="#" id="mostrar" onclick="manifestacao(\''+item.assunto+'\',\''+item.categoria+'\',\''+item.mensagem+'\',\''+item.data+'\',\''+item.hora+'\',\''+item.resposta+'\',\''+item.dataResposta+'\',\''+item.horaResposta+'\',\''+item.local+'\');">'+
 
   '<div class="corpo">'+ 
   '<div class="logo-opcao">'+
      '<img src="'+urlIcone+'" alt="" width="32" height="32">'+
   '</div>'+
   '<div class="nome-categoria-inicio">'+
     item.assunto+
   '</div>'+
   '<div class="logo-ir">'+
      '<img src="img/ir-z.png" alt="">'+
   '</div>'+
   '</div>'+

'</a>';


manifestacoes.append(retornoManifestacao); 

O código funciona, porém no campo resposta e mensagem, pode acontecer de conter valores com as aspas ou virgula, e quando isso ocorre está bugando a função, ao clicar nada acontece.

 

 

Alguém tem alguma solução para isso? Lembrando que os valores são pegos dinamicamente através do $.ajax

 

 

Desde já muito obrigado pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode apagar o onclick da tag e colocar ele no javascript, depois ficaria assim onde está o append:

 

 

retornoManifestacaoEl = $(retornoManifestacao);
retornoManifestacaoEl.on('click', function() {
   manifestacao(x, y, z, 'teste');
});
manifestacoes.append(retornoManifestacaoEl);

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.