Button SEMPRE submete formulário

Pessoal, estou com uma aplicação blank que monta um form que estou utilizando para importar arquivos de dados do dbase para depois jogar um banco MySQL…

Antes de submeter o arquivo, criei esta uma função em javascript vara validar a extensão do arquivo e o button aponta para ela. Só que toda a hora que clico na porcaria do Button, ele submete o formulário, eu querendo ou não…

Alguém já passou por isso?

Eu sempre usei essa função javascript… não entendo o que está acontecendo… segue o código:

?>

<?php switch([cd_tipo]) { case "bm_custos": { $desc_arquivo="Boletim Mensal de Custos"; $desc_exemplo="ELEM0316.dbf"; break; } case "bm_composicoes": { $desc_arquivo="Boletim Mensal de Composições"; $desc_exemplo="EMOP0216.dbf"; break; } case "cat_mat": { $desc_arquivo="Catálogo de Materiais"; $desc_exemplo="MAT0316.dbf"; break; } case "cat_ref": { $desc_arquivo="Catálogo de Referência"; $desc_exemplo="REF.dbf"; break; } case "cat_composicoes": { $desc_arquivo="Catálogo de Composições"; $desc_exemplo="COMP0316.dbf"; break; } case "bm_custos": { $desc_arquivo="Catálogo de Itens Reutilizados"; $desc_exemplo="REUT0316.dbf"; break; } } echo "
Importar ".$desc_arquivo."
"; echo "Selecione o arquivo de dados Dbase no formulário abaixo para iniciar a importação.
Exemplo: ".$desc_exemplo."

"; echo ""; // MAX_FILE_SIZE deve preceder o campo input echo ""; // O Nome do elemento input determina o nome da array $_FILES echo "Selecione o arquivo: "; echo "
"; echo "

"; echo "Enviar"; echo "    "; echo "Sair"; echo "
"; echo "";

Opa, segue uma pequena correção no arquivo javascript… de tanto testar, acabei errando uma besteirinha na programação.

function valida_arquivo(formulario, arquivo) {

extensao_permitida = ".dbf";
meuerro = "";

if (!arquivo) 
{
	//Se não tenho arquivo, é porque não se selecionou um arquivo no formulário.
   	meuerro = "Não foi selecionado nenhum arquivo";
}
else
{
  	//recupero a extensão deste nome de arquivo
  	extensao = arquivo.substring(arquivo.lastIndexOf(".")).toLowerCase();

  	//comprovo se a extensão está entre as permitidas
  	permitida = false;
  	if (extensao_permitida == extensao) 
	{
     	permitida = true;
  	}
  	if (permitida==false) 
	{
     	meuerro = "Tipo de arquivo de dados inválido! Favor selecionar um arquivo com a extenção " + extensao_permitida;
   	}
	else
	{
     	//submeto!
     	formulario.submit();
     	return 1;
   	}

}
//se estou aqui é porque não se pode submeter
alert (meuerro);
return 0;

Acabei resolvendo substituindo o pelo mas esse inferno não deveria acontecer, certo?

Porque o sempre submete???

Isso é um comportamento padrão do elemento button. Veja uma parte da especificação dele:

[font=sans-serif][size=medium]A [/size][/font][font=sans-serif][size=medium]button[/size][/font][font=sans-serif][size=medium] element with no [/size][/font][font=sans-serif][size=medium]type[/size][/font][font=sans-serif][size=medium] attribute specified [b]represents the same thing[/b] as a [/size][/font][font=sans-serif][size=medium][url=http://w3c.github.io/html-reference/button.submit.html#button.submit]button element with its type attribute set to "submit"[/url][/size][/font][font=sans-serif][size=medium].[/size][/font]

Ixi… programador véio tem dessas coisas… esse é novidade do html5… eu sempre usei o

Se eu deixar o com type=“button” resolve o problema, certo?

Vlw a dica!

Isso, deixando com type=“button” ele não vai submeter.