Ir para o conteúdo
br

jquery parar refresh da pagina

Mensagens Recomendadas

br

boas

estou a desenvolver uma app

adiciono em com um botao um no campo no form, mas sempre que carrego nesse botao ele faz-me refresh da pagina.

como posso para isso?

$(document).ready(function(){
        $("#btadd").click(function(){
            $("ol").append("<li>Date <input type='text' id=datepicker' /> Hour <input type='text'/></li>");
        });
        });

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

se faz refresh da página é porque o elemento com o id "btadd" será um anchor com o href com o valor de "#" ou um input do tipo "submit" de um form com o atributo action com o valor de "#".

tanto um caso como outro, a solução é fazer o retorno de false da função descrita

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
br

muito obrigado.

exacto o return false resolveu.

$(document).ready(function(){
	 $("#btadd").click(function(){
		 $("ol").append("<table>\n\
		 <tr><td><label>Date</label><input type='text' id='datepicker' class='text ui-widget-content ui-corner-all'/></td>\n\
		 <td><label>Hour</label><input type='text' class='text ui-widget-content ui-corner-all'/></td>\n\
		 <td><button id='btremove' class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'><img src='ico/delete.png'></button></td></tr>\n\
		 </table>");
					 return false;
	 });		
	 });

mas agora datepicker nao funciona nos novos. como posso resolver?

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
br

so apenas do primeiro ja foi criado no form, nos novos nao funciona.

como assim inicializar apos a criaçao?

desculpa mas sou muito verde em jquery, é a primeira vez que estou a olhar para isto

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

pensa assim : como e quando é que inicializas o datepicker ?

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
br

acrescentei uma funçao com datepicker no inicio.

$(document).ready(function(){
$("#btadd").click(function(){
$("ol").append("<table>\n\\n\
<tr><td><label>Date</label><input type='text' id='datepicker' class='text ui-widget-content ui-corner-all'/></td>\n\
<td><label>Hour</label><input type='text' class='text ui-widget-content ui-corner-all'/></td>\n\
<td><button id='btremove' class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'><img src='ico/delete.png'></button></td></tr>\n\
</table>");
return false;
});

$("#btremove").click(function(){
$('#btremove').closest('ol').remove();
return false;
});
});

$(function() {
$( "#datepicker" ).datepicker();
});

nao e assim a maneira correcta?

e mesmo o remover tambem nao funciona, mas funciona no primeiro criado fora desta funçao

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

1º - id's são para ser únicos !!!

2º - o que estás a fazer na inicialização é associar a plugin datepicker ao elemento com o id datepicker (se tiveres mais do que um o resultado é impossivel determinar)

3º - não o estás a fazer o processo anterior ao elemento criado na acção click


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
br

sim estou a entender o que estas a dizer.

entao vou ter que criar um novo id para cada datepicker? e o mesmo para o click do remover

como posso fazer isso?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Antes de mais, um pouco offtopic: A fazeres append de strings de código HTML o teu código vai ficar uma salganhada enorme. A minha sugestão é colocares esse código em ficheiros HTML separados. Se utilizares bibliotecas como o underscore e o backbone ficas com o código bastante mais limpo e fácil de manter.

Relativamente à questão colocada, basta utilizar o preventDefault().

Editado por KTachyon

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.