2011-07-14 18 views
5

¿por qué no es un href alrededor de un tipo de entrada enviar no funciona en IE? (Y qué puedo hacer para solucionarlo)href alrededor del tipo de entrada enviar

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen"> 
</head> 
<body> 
<a href="1.html"><input type="submit" class="button_active" value="1"></a> 
<a href="2.html"><input type="submit" class="button" value="2"></a> 
<a href="3.html"><input type="submit" class="button" value="3"></a> 
</body> 
</html> 

style.css:

* { 
    margin: 0; 
    padding: 0; 
} 

/* CSS Buttons: http://www.web4site.de/css/css-buttons.php */ 
.button { 
    padding:0; 
    margin:0; 
    border:none; 
    font-size:14px; 
    background: url(../img/button.gif) no-repeat center; 
    color: #000000; 
    height:27px; 
    width:134px; 
    font-variant:small-caps; 
} 

.button:hover { 
    padding:0; 
    margin:0; 
    border:none; 
    font-size:14px; 
    background: url(../img/button.gif) no-repeat center; 
    color: #FF0000; 
    height:27px; 
    width:134px; 
    text-decoration:none; 
    font-variant:small-caps; 
} 

.button_active { 
    padding:0; 
    margin:0; 
    border:none; 
    font-size:14px; 
    background: url(../img/button.gif) no-repeat center; 
    color: #FF0000; 
    height:27px; 
    width:134px; 
    font-variant:small-caps; 
} 

Esto funciona bien en Firefox ...

+0

tiene que aceptar que html tiene sus limitaciones – Sotiris

Respuesta

10

No funciona porque no lo hace tiene sentido (tan poco sentido que HTML 5 explícitamente lo prohíbe).

Para solucionarlo, decida si quiere un enlace o un botón de envío y use el que realmente desee (Sugerencia: no tiene un formulario, por lo que un botón de envío no tiene sentido).

+0

Tiene sentido para mí, porque necesito un enlace y uso el tipo de entrada para formatearlo (con una imagen de fondo, etc.). – Marc

+0

Al hacer clic en un enlace, sigue un enlace. Cuando hace clic en un botón enviar, envía un formulario. Cuando hace clic en un botón de enviar dentro de un enlace ... ¿sigue simultáneamente un enlace y envía un formulario? ¿Ambos envían el navegador a un nuevo URI? Eso no tiene sentido en absoluto. – Quentin

+2

Ese es tu problema. Un botón de envío es una cosa para enviar un formulario, no se trata de hacer que algo parezca un botón. Si quieres hacer que algo parezca un botón ** usa CSS **. – Quentin

0

Coloque la ubicación del enlace en action="" de una etiqueta de embalaje form.

Su primer enlace sería:

<form action="1.html"> 
    <input type="submit" class="button_active" value="1"> 
</form> 
+0

los enlaces no son los mismos para cada tipo de entrada -.- – Marc

+0

Suponiendo que quiere enviar datos para las entradas, entonces se necesitarían tres formularios diferentes – Phil

11

¿Por qué quieres poner un botón de envío dentro de un ancla? Está intentando enviar un formulario o ir a una página diferente. ¿Cuál es?

bien someter el formulario:

<input type="submit" class="button_active" value="1" /> 

o ir a otra página:

<input type="button" class="button_active" onclick="location.href='1.html';" /> 
+0

este funciona bien. Muchas gracias :) – Marc

+0

No hay problema. Siéntase libre de aceptar esta respuesta. ;) – Kon

0

Estoy de acuerdo con Quentin. No tiene sentido en cuanto a por qué quieres hacerlo así. Es parte del concepto Semantic Web. Debe planear los objetos de su sitio web para una futura integración/expansión. Otra aplicación web o sitio web no puede interactuar con su contenido si no sigue el caso de uso adecuado.

IE y Firefox son dos bestias diferentes. Hay muchas cosas que IE permite que Firefox y otros navegadores compatibles con estándares rechacen.

Si está intentando crear botones sin enviar datos, utilice una combinación de DIV/CSS.

0
<a href="1.html"><input type="text" class="button_active" value="1"></a> 
<a href="2.html"><input type="text" class="button" value="2"></a> 
<a href="3.html"><input type="text" class="button" value="3"></a> 

Probar eso. A menos que realmente necesite seguir con el tipo como enviar, entonces lo que proporcioné debería funcionar. Si se va a quedar con el envío, entonces todo lo mencionado anteriormente es correcto, no tiene sentido.

Cuestiones relacionadas