Sembra nella maggior parte dei browser, uno <input type="submit">
tratta sia [barra spaziatrice] che [invio] come un clic, ma un collegamento <a>
considera solo [invio] come un clic.jQuery - Evento click trigger sui link con barra spaziatrice?
La mia app utilizza un numero di link formattati per simulare i pulsanti, quindi un utente che è abituato a premere un pulsante e premere [barra spaziatrice] sarà frustrato.
Questo bit di jQuery risolve il problema:
$("a.Button").die("keypress").live("keypress", function(e) {
if (e.which == 32) {
$(this).trigger("click");
e.preventDefault();
}
});
La mia domanda: C'è una ragione per non farlo? Sono un po 'riluttante a ignorare il comportamento predefinito del browser su qualcosa di fondamentale come questo, ma dal momento che sto già abusando del tag link per farlo apparire come un pulsante, almeno in questo modo non sto violando le aspettative dell'utente ulteriore.
FWIW questa è un'app con un pubblico limitato. Javascript è un requisito dichiarato per l'utilizzo. Fa un uso pesante di mappe, grafici, griglie modificabili e altri elementi visivi e/o interattivi, e non mi è chiaro che sarebbe possibile renderlo utilizzabile tramite uno screen reader. –
Questo non sembra funzionare per i pulsanti di collegamento ASP.NET che producono elementi di ancoraggio con un href di 'javascript: WebForm_DoPostBackWithOptions (new WebForm_PostBackOptions ("ctl00 $ main $ uclFind $ uclEntry $ btnGet", "", true, "", "", falso, vero)) ' –