Eu tenho uma página com dois botões. Um é um <button>
elemento e o outro é um <input type="submit">
. Os botões aparecem na página nessa ordem. Se eu estiver em um campo de texto em qualquer lugar do formulário e pressionar <Enter>
, o click
evento do elemento button será acionado. Presumo que é porque o elemento button fica em primeiro lugar.
Não consigo encontrar nada que pareça uma maneira confiável de definir o botão padrão, nem quero necessariamente neste momento. Na ausência de algo melhor, capturei uma tecla pressionada em qualquer lugar do formulário e, se foi a <Enter>
tecla pressionada, estou negando:
$('form').keypress( function( e ) {
var code = e.keyCode || e.which;
if( code === 13 ) {
e.preventDefault();
return false;
}
})
Até onde eu sei até agora, parece estar funcionando, mas parece incrivelmente maluco.
Alguém conhece uma técnica mais sofisticada para fazer isso?
Da mesma forma, existem armadilhas para esta solução das quais simplesmente não estou ciente?
Obrigado.