personalizado - javascript confirm yes no
JavaScript: ¿Cómo seleccionar "Cancelar" de forma predeterminada en el cuadro de confirmación? (3)
Estoy mostrando un cuadro de confirmación de JavaScript cuando el usuario hace clic en el botón "Eliminar datos". Lo estoy mostrando como se muestra en esta imagen:
En la imagen, el botón "Aceptar" está seleccionado por defecto. Deseo seleccionar el botón "Cancelar" de manera predeterminada, de modo que si el usuario presiona accidentalmente la tecla Intro , los registros serán seguros y no se eliminarán.
¿Hay alguna forma en JavaScript para seleccionar el botón "Cancelar" de manera predeterminada?
No creo que puedas hacer eso.
Pero definitivamente puede hacer que sea más difícil para el usuario ''aceptar'' accidentalmente la confirmación, por ejemplo forzando al usuario a escribir ''y'' en un cuadro de entrada:
agree = (prompt("Type ''y'' to accept", '''') == ''y'');
No puedes hacer eso, pero podrías usar / escribir tu propio cuadro de diálogo que se muestra usando elementos DOM (como Phoenix lo sugirió, simplemente no tiene que ser ese plugin jQuery en particular, podrías escribir el tuyo o usar el plugin de otro JS framework).
Las respuestas de "use jQuery + plugin X" están empezando a ser molestas. Hay muchas bibliotecas JS e incluso más complementos. Por ejemplo, usar cualquier biblioteca JS aquí no es necesaria si solo desea mostrar un diálogo personalizado. Si bien es una solución / respuesta rápida, las respuestas como esa hacen más daño a largo plazo que bien. Las personas nuevas en JavaScript o la programación en general comienzan a pensar que jQuery y / o complementos son el único camino a seguir e incluyen 50kb + biblioteca solo para escribir 3 líneas propias (que a veces ni siquiera usan la biblioteca: D).
En mi opinión, el comentario de Markus Johnsson es la mejor respuesta, es una pena que no esté publicado como tal.
Si puedes usar el plugin jQuery entonces aquí hay uno agradable
Para cambiar el botón enfocado por defecto:
$.prompt(''Example 4'',{ buttons: { Ok: true, Cancel: false }, focus: 1 });