Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    annullare e ripristinare il value di un form

    Ciao a tutti..
    lavorando su un form ho cercato un metodo generale per annullare il value quando il campo di testo è onfocus e ripristinare lo stesso value quando è onblur se non si è inserito alcun valore.

    in un caso particolare il metodo è semplice:

    <input type="text" name="nome" value="inserisci il nome" onfocus="if (this.value == 'inserisci il nome') { this.value = ' '}" onblur="if (this.value == ' ') { this.value='oggetto del messaggio'; }" />

    questo metodo, pur essendo valido, mi costringe a scrivere questo codice per ogni input del form.
    Si può adottare una soluzione più generale? tipo..

    <input type="text" name="nome" value="inserisci il nome" onfocus="clear_input()" onblur="repair_input()" />

    quindi associando due funzioni clear_input() che azzera il value, e repair_input che controlla se non è stato inserito nulla e riporta il value al valore originale.

    la prima funzione è semplice (anche se con this.value non funziona e non mi spiego il perché):
    function clear_input() {
    this.value="";
    }

    per la seconda non saprei come andare a riprendere il value originario.

    Avete un metodo generale da consigliarmi?
    Grazie in anticipo...

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se vuoi usare this in una funzione richiamata cosi' glielo devi passare tra gli argomenti
    function funzione(el){
    qui parli di el
    }

    <... onclick="funzione(this)" ...>


    in generale quello che vuoi fare puoi farlo cosi':
    <input type="text" onfocus="if(this.value==this.defaultValue) this.value=''" onblur="if(this.value=='') this.value=this.defaultValue" />

    ciao

  3. #3
    ecco avevo momentaneamente e completamente dimenticato il passaggio di parametri.. errore grave..
    e non ero a conoscenza di defaultValue...

    perfetto, ci sono riuscito.. Grazie!

  4. #4
    posto l'intera soluzione qualora potesse servire a qualcuno..

    in html...
    <input type="text" name="nome" value="nome" onfocus="clear_input(this)" onblur="repair_input(this)">

    mentre le funzioni..
    function clear_input(el) {
    el.value = '';
    }

    function repair_input(el) {
    if (el.value == '') {
    el.value = el.defaultValue;
    }
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.