Quero que o enter nao submeta o formulario

Ola, quero saber o que estou fazendo errado. Fiz o codigo java script abaixo. E quando dou o enter no input fora do form, funciona 100%. Porem quando esta no form, por mais que eu coloque a opcao preventDefault(); ele continua a submeter o form. Onde estou errando?

$(function() {
var campoEan = $('#ean');

campoEan.on('keyup', function(e) {
	e.preventDefault();
	if (e.keyCode === 13) {
		campoEan.trigger('enter', campoEan.val());
	}
});

campoEan.on('enter', function(evento, codigoEan) {		
	evento.preventDefault();
	$.ajax({
		url : '/produto',
		method : 'GET',
		contentType : 'application/json',
		data : {
			ean : campoEan.val()
		},
		success : onPesquisaConcluida,
		error : onErroPesquisa
	});
});

function onPesquisaConcluida(resultado) {
	$('.js-mensagem-cadastro').addClass('hidden');
	$('#codigo').val(resultado.id);
	$('#idProduto').val(resultado.id);
	$('#descricao').val(resultado.descricao);
	$('#precoCompra').val(resultado.precoCompra);
	$('#precoCusto').val(resultado.precoCusto);
	$('#margemLucro').val(resultado.margemLucro);
	$('#precoVenda').val(resultado.precoVenda);
	$('#precoPromocao').val(resultado.precoPromocao);
	$('#precoVenda').focus();
}

function onErroPesquisa(obj) {
	var mensagemErro = obj.responseText;
	$('.js-mensagem-cadastro').removeClass('hidden');
	$('.js-mensagem-cadastro').html('<span>' + mensagemErro + '</span>');
	campoEan.val('');
}
});