2009-11-25 19 views
12

Sólo tratando de poner en práctica estos botones en la actualidad http://web.archive.org/web/20110721191046/http://particletree.com/features/rediscovering-the-button-element/botón vs input type = "submit" vs un onclick = "document.formname.submit()"

no puede decidir qué ir para, desde aquí usamos principalmente IE6. Por lo que yo puedo decir ...

botón:

  • le permite enviar el formulario como de costumbre (es decir, oprimir la tecla Enter en el formulario), le permitirá desactivarlo, compatible con las normas, no lo hace depender de JavaScript
  • no: ciernen en IE6 sin utilizar Suckerfish, pero después no se puede diseñarlo en consecuencia y se limitan a un solo color de fondo & tiene un borde negro horrible en IE6

input type = "submit":

  • También vamos a enviar el formulario como de costumbre
  • No se puede incluir imágenes por lo que tendrá una cantidad ridícula de archivos de clase para lo que necesito, y otra vez sin : hover en IE6 sin Suckerfish

un onclick = "document.formname.submit()"

  • fácil de peinar en IE6 sin cualquier hacks
  • No es tan fácil trabajar con él, ¡sin hacks! es decir, no puede enviar el botón con la tecla Entrar

... así que me pregunto, de los tres, cuál es el preferido en general? Idealmente, supongo que quiero la función sobre el estilo, pero es un requisito tener Javascript habilitado aquí (es solo para una página intranet) y supongo que a la gente en general no le importa demasiado lo que está sucediendo en el fondo? Hmm.

+0

Probablemente la peor solución, pero si utilizo document.formname.submit() también podría incluir un botón de envío oculto, de modo que el usuario aún pueda presionar enter para enviar el formulario como de costumbre. Hmm. – Nick

+3

En realidad, "input type = submit" es el que no necesita javascript para enviar. Para "tipo = botón" y "botón", Firefox y quizás algunos otros navegadores pueden enviar el formulario, pero no IE. También omitió "input type = image", que es la sustitución de imagen para "type = submit". –

+0

Gracias okw - input type = "image" suena bien pero también me gustaría un poco de texto. Por ejemplo, si el usuario ingresa la información correctamente, quiero que aparezca un pequeño icono y que aparezca algo de texto; de lo contrario, se mostrará gris y desactivado. – Nick

Respuesta

11

Vaya por onclick = "document.formname.submit()" ruta por estilo y agregue el botón oculto para la funcionalidad.

+0

Gracias - Puedo ir por esto, sé que realmente no es ideal desde el punto de vista de la codificación, pero tal vez para los usuarios funcione mejor. – Nick

+3

try onclick = "document.formname.submit(); return false;" para evitar el controlador onClick por defecto. – NilColor

5

Recomiendo el botón enviar, simplemente porque eso es exactamente lo que está ahí. Si tiene usuarios discapacitados, el botón de envío será el más significativo para ellos.

Si realmente no le gusta el borde alrededor de los botones en IE6, entonces siempre puede ocultar el botón Enviar con JavaScript y luego crear su propio botón con los estilos que desee, siempre que haga clic en su botón Hecho en casa, luego llama al manejador de eventos onclick del botón de envío (que enviará el formulario). Esto aún le permite al usuario presionar la tecla Intro para enviar datos, y mantiene la clave de envío para las personas que tienen JavaScript desactivado.

3

Si utiliza <a> con onclick, no se olvide de establecer role="button" y wairole="button" y también establecer el manejador onkeypress para hacer el "botón " accesible!

Cuestiones relacionadas