Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    311

    form button, immagine, enabled, disabled

    Ciao,
    scusatemi, premetto che ho cercato un po' sia qui che altrove, ma non trovo il modo di come realizzare quanto segue:

    vorrei personalizzare il pulsante di un invio modulo con delle immagini (hover, active, etc).. e fin qui nessun problema usando CSS (:hover :active), ma ho anche la necessità di attivare il pulsante solo se è attivata una checkbox... quindi dovrei rendere il pulsante "disattivato" ma che si capisca che è disattivato (tipo renderlo semi-trasparente oppure usare un'immagine diversa).
    Attualmente sto utilizzando questo metodo (enabled/disabled) ma con pulsanti standard non personalizzati.

    Grazie

    P.S.
    Non sono esperto di Javascript

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Dal css puoi personalizzare anche i bottoni disable:
    codice:
    #miobottone[disabled] {
      background: red;
      opacity: 0.4;
    }
    No

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, come indicato da tampertools, puoi utilizzare disabled come selettore CSS.

    Per completezza posto una soluzione pratica.

    Per il submit ti consiglio di utilizzare comunque un elemento input di tipo submit.
    Una volta fissate le dimensioni potrai agire, dal css, sul suo background per sostituire al volo l'immagine a seconda dello stato in cui si trova il pulsante.
    Per una migliore funzionalità ti consiglio di creare un unico file immagine in cui saranno presenti i vari stati del pulsante.

    Allego un file di esempio.
    submit.png

    Sullo stesso file avrai quindi (in questo caso) i 4 stati:
    - normale
    - hover
    - premuto
    - disabilitato

    Nota che ho usato un file png per cui ho potuto impostare la trasparenza direttamente sull'immagine (ad esempio per lo stato disabilitato).

    Ora ti servirà qualche riga di css e un minimo di javascript per poter abilitare/disabilitare il submit a seconda dello stato del tuo checkbox.

    Qui un esempio completo da cui puoi prendere spunto:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <style type="text/css">
          #submit{
            background: url("submit.png") no-repeat;
            width:100px;
            height:30px;
            border:none;
            font-size:0;
            color:transparent;
          }
          #submit:hover{
            background-position:0 -30px;
          }
          #submit:active{
            background-position:0 -60px;
          }
          #submit:disabled{
            background-position:0 -90px;
          }
    
        </style>
      </head>
      <body>
      <form action="#">
        <label>
          <input type="checkbox" onchange="document.getElementById('submit').disabled = !this.checked" >
          Ho letto e accetto le condizioni
        </label>
        <br>
        <input id="submit" type="submit" disabled>
      </form>
      </body>
    </html>
    L'immagine utilizzata per il background è la stessa che ho allegato sopra.

    Noterai che nell'evento onchange del checkbox, tramite javascript, viene impostata la proprietà disabled del submit. Il valore viene dato dal "contrario" del valore che assume la proprietà checked dello stesso checkbox ogni volta che cambia stato (cioè !this.checked)
    Ultima modifica di KillerWorm; 18-05-2014 a 19:21
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    311
    wow... super chiaro !!
    mille anzi diecimila grazie !!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.