2010-07-05 5 views
3

Je crée un formulaire de contact HTML qui utilise une image standard pour un bouton d'envoi.Comment créer un bouton Soumettre mouseover?

Voici le code html:

<form action="#"> 
    <fieldset> 
     <input type="text" name="name" value="FULL NAME" onfocus="if (this.value=='FULL NAME') this.value='';"/> 
     <input type="text" name="" value="PHONE NUMBER" onfocus="if (this.value=='PHONE NUMBER') this.value='';"/> 
     <input type="text" name="" value="EMAIL" onfocus="if (this.value=='EMAIL') this.value='';"/> 
     <input type="text" name="" value="MOVE DATE" onfocus="if (this.value=='MOVE DATE') this.value='';"/> 
     <input type="text" name="" value="ORIGINATING ADDRESS" onfocus="if (this.value=='ORIGINATING ADDRESS') this.value='';"/> 
     <input type="text" name="" value="DESTINATION ADDRESS" onfocus="if (this.value=='DESTINATION ADDRESS') this.value='';"/> 
     <select name="type"> 
      <option value="Private">Private</option> 
      <option value="Commercial">Commercial</option> 
     </select> 
     <input id="quoteSubmit" type="image" src="_images/btn_submit.png" alt="" /> 
    </fieldset> 
</form> 

L'image statique bouton Soumettre est correct, mais je voudrais changer sur mouseover à btn_submit-over.png.

Je suis familier avec les survols utilisant des sprites css, mais ils ne fonctionnent pas pour les boutons de soumission. J'apprécierais de l'aide.

Merci!

Répondre

6

Avec CSS pur,

<input type="submit" value="::Submit Query::" id="foo" /> 

... 

    #foo { 
    background-image: url('_images/btn_submit.png'); 
    width: <width here>; 
    height: <height here>; 
    border-style: none; 
    background-color: transparent; 
    text-indent: 480px; /* hack to hide the text */ 
    } 

    #foo:hover { 
    background-image: url('_images/btn_submit-over.png') 
    } 

Si CSS est désactivé, il reviendra à un simple bouton d'envoi.

Démonstration: http://jsbin.com/aboxu3/2

Vous pouvez ensuite appliquer les techniques de sprites CSS.

+0

Beaucoup plus agréable que le script. Site cool, jsbin btw – mplungjan

+0

http://stackoverflow.com/questions/195632/how-to-change-input-button-image-using-css – mplungjan

3

Vous pouvez le faire de plusieurs façons ... avec jquery peut-être le meilleur moyen, mais c'est ainsi que vous le faites sans.

changement
<input id="quoteSubmit" type="image" src="_images/btn_submit.png" alt="" />

à
<input id="quoteSubmit" type="image" src="_images/btn_submit.png" alt="" onmouseover="javascript:this.src='_images/btn_submit-over.png'" onmouseout="javascript:this.src='_images/btn_submit.png'"/>

Juste à partir du haut de ma tête, je suppose que cela devrait fonctionner.

Br, Paul

+1

, pas aussi très peu probable besoin de javascript: à moins d'VBScript sur la page que le premier script – mplungjan

+0

Zut, cela fonctionne réellement dans FF3.6, IE8, Chrome et Safar je sur Windows. Mes excuses – mplungjan

+0

Fonctionne parfaitement. Merci. – fmz

1

OldSchool:

 <a href="#" onclick="document.forms[0].submit(); return false" 
onmouseover="document.subBut.src=document.subBut.src.replace('.png','over.png')" 
onmouseout="document.subBut.src=document.subBut.src.replace('over.png','.png')"><img 
name="subBut" src="_images/btn_submit.png" alt="" border="0" /></a> 
1

Ne serait-il possible d'utiliser une classe?

<input type="submit" class="submit" .../> 

CSS: 
input.submit:hover{ 
    color: Green; 
} 

ou vous pouvez utiliser alors un peu JavaScript pour gérer l'échange d'images et de provoquer le bouton pour appeler submit() (javascript: document.theform.submit())

1

Fondamentalement, c'est ce que vous allez faire:

HTML Markup:

<input type="submit" name="Submit" id="submit" value="&nbsp;" /> 

Remarques: Créer un ID pour le CSS. Dans la "Valeur", mettez &nbsp; (le balisage html pour un espace vide) et cela rendra la "valeur" par défaut vide.

CSS Markup:

#submit { 
width: 220px; 
height: 50px; 
border: none; 
background: url("images/submit.jpg") no-repeat; 
} 
     #submit:focus { 
     background: url("images/submit_over.jpg") no-repeat;  
     } 

Remarques: La largeur et la hauteur devrait être la largeur et la hauteur de votre image. Puis ajoutez border: none; pour supprimer la bordure par défaut qui apparaît.

Espérons que cela aide! Beaucoup plus simple que l'une des réponses ci-dessus.

3

solution classique (similaire à Mitch ci-dessus):

Pour le code HTML dans le formulaire, ajoutez une 'classe':

<INPUT NAME="submit" class="submit" TYPE="submit" VALUE="Submit"> 

Pour le CSS, faire la couleur du texte en vol stationnaire de changement (ajouter « largeur : » et « hauteur: » lignes si vous avez besoin)

.submit { 
text-decoration: none; 
text-align: center; 
border: 1px solid black; 
background-color: #cccccc; 
-moz-border-radius: 5px; /* I hate square buttons for mozilla*/ 
border-radius: 5px; /* I hate square buttons for everybody else*/ 
font-family: Arial,Helvetic1,Geneva,Swiss,SunSans-Regular; 
font-size: 18px; 
color: #0000aa; /* font is blue */ 
} 

.submit:hover { 
color: #ff0000; /* font changes to RED on hover) */ 
} 
Questions connexes