JAVA + VRaptor + AJAX - Separando javascript do HTML

4 respostas
H

Neste exemplo:

<div id="menu">
	<ul>
		<li><a href="<c:url value="/produtos/novo"/>">Novo Produto</a></li>
		<li><a href="<c:url value="/produtos"/>">Lista Produtos</a></li>
		<li>
			<form action="<c:url value="/produto/busca"/>">
				<input id="busca" name="nome"/>
			</form>
			<script type="text/javascript">
				$("#busca").puts("Busca produtos por nome");
				$("#busca").autocomplete(?/goodbuy/produtos/busca.json?, {
					dataType: "json",
					parse: function(data) {
						return $.map(data.list, function(produto) {
							return {
								data: produto,
								value: produto.nome,
								result: produto.nome
							};
						});
					},
					formatItem: function(produto) {
						return produto.nome + "(" + produto.preco + ")";
					}
				});
			</script>
		</li>
	</ul>
</div>

Funciona perfeitamente o autocomplete, mas como eu faria para retirar os scripts desta página .jsp e colocar em um arquivo separado, .js?

Eu criei um arquivo busca_autocomplete.js, removi as tags e chamei no head:

Porém, somente com o conteúdo dentro das tags no arquivo busca_autocomplete.js não funcionou.
É necessário criar alguma função?

4 Respostas

Lucas_Cavalcanti

no busca_autocomplete.js faça:

$(function() {
  //o que tava antes no arquivo
});

assim ele só executa qdo tudo tiver carregado na página…

outra solução seria colocar a declaração do script no final da página, não no header (colocar no header é errado)

H

Ao criar o cadastro de Produtos (seguindo a apostila do FJ-28), após começar a cadastrar um novo produto, há alguma forma de criar um botão “cancelar” e sair do formulário, voltando para a lista de produtos?

Eu utilizei o valditor do VRaptor e o Jquery (evitando que campos sejam preenchidos em branco, valores mínimos de caracteres, etc.)

Após eu clicar no botão cancelar:

ele esbarra nas validações do JQuery e do Validator do VRaptor e não permite eu sair da tela sem preencher os dados.

Como desenvolver uma ação de cancelamento, fujindo desses 2 tipos de validação?

vlw…

H

Bom, consegui uma alternativa da seguinte forma, ao invés de um “botão cancelar”, criei um “link cancelar”, apontando para a lista:

Porém, continuo com a pergunta, pois acho que seria mais indicado um “botão cancelar” mesmo, em que possa pedir confirmação antes de retornar para a lista e “cancelar” a inclusão…

Lucas_Cavalcanti

vc pode colocar um botão cancelar, mas vc precisa fazer algo do tipo:

<button id="cancelar" type="button>Cancelar</button>

e no javascript:

$('#cancelar').click(function() {
    //a lógica aqui
});
Criado 1 de outubro de 2010
Ultima resposta 6 de out. de 2010
Respostas 4
Participantes 2