Joomla.it Forum

Componenti per Joomla! => Gestione Form => : Mr. Nameless 12 Oct 2010, 10:45:11

: Chronoform + onfocus e onblur non funziona
: Mr. Nameless 12 Oct 2010, 10:45:11
Ciao a tutti,

ho realizzato un semplice form contatti con la v3.0 di cf, avrei la necessità di implementare la funzione "onblur" e "onfocus", purtroppo ho provato in parecchi modi ma ottengo sempre degli errori, ovvero se funziona non ho più la verifica sui campi, oppure se va il focus non va il blur, mi potete dare una mani per piacere ? Grazie mille, posto il codice.


questo è il form :

<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">nome</label>
    <input class="cf_inputbox required" type="text" maxlength="150" size="30" title="*" id="text_1" name="nome"/>
 
  </div>
  <div class="cfclear"></div>
</div>

<div class="form_item"><div class="form_element cf_textbox">
<label class="cf_label" style="width: 150px;">cognome</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="*" id="text_2" name="cognome" type="text" />
 
  </div>
  <div class="cfclear"></div>
</div>

<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">mail</label>
    <input class="cf_inputbox required validate-email" maxlength="150" size="30" title="*" id="text_3" name="mail" type="text" />
 
  </div>
  <div class="cfclear"></div>
</div>

<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">oggetto</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="*" id="text_6" name="oggetto" type="text" />
 
  </div>
  <div class="cfclear"></div>
</div>

<div class="form_item">
  <div class="form_element cf_textarea">
    <label class="cf_label" style="width: 150px;">messaggio</label>
    <textarea class="cf_inputbox required" rows="3" id="text_4" title="*" cols="24" name="messaggio"></textarea>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_captcha">
    <label class="cf_label" style="width: 150px;">Codice di sicurezza</label>
    <span>{imageverification}</span>
    <a class="tooltiplink" onclick="return false;"><img height="16" border="0" width="16" class="tooltipimg" alt=""

src="components/com_chronocontact/css/images/tooltip.png"/>[/url]
            <div class="tooltipdiv">Codice di sicurezza :: Digita le cifre accanto</div>
    </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_button">
    <input value="invia messaggio" name="button_6" type="submit" />
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

questo è il codice con le funzioni che funzionano, recuperate da un'altro form non cf e non con joomla.

<input name="UserName22" type="text" class="contactform" size="75" value="Nome e Cognome" onfocus="this.value = '';" onblur="if(this.value== '') this.value='Nome e Cognome'">

Dove dovrei inserire le funzioni ? ho letto in giro che bisogna usare il js, ho provato ad inserirlo nel box dedicato ma non funziona!

AA
: Re:Chronoform + onfocus e onblur non funziona
: vales 17 Oct 2010, 16:06:17
Sto utilizzando onfocus e onchange in contemporanea su una select e funzionano, onblur non l'ho mai provato.

Per inserire il javascript nel campo Form javascripts non devono essere usati i tag di apertura e chiusura dello script, li metterà in auto chronoforms.

Le funzioni le devi mettere fra i parametri del campo input che vuoi gestire.

Però non capisco il funzionamento dell'input finale che hai proposto.

:
<input name="UserName22" type="text" class="contactform" size="75"   value="Nome e Cognome" onfocus="this.value = '';"   onblur="if(this.value== '') this.value='Nome e Cognome'" />
1) hai già il value assegnato = "Nome e Cognome"

2) con onfocus assegni il valore nullo ''

3) con onblur se il valore è nullo lo rimetti = "Nome e Cognome"

Mi sfugge qualcosa ?
: Re:Chronoform + onfocus e onblur non funziona
: Mr. Nameless 13 Nov 2010, 15:14:18
Ciao, scusa il ritardo con cui ti rispondo.

Utilizzando la stringa che hai postato, funziona solo in parte nel senso cheil form perde la funzione "required" , invece a me serve, ti dico quello che mi serve, magari sono io a spiegarmi male.

se non clicco nel campo avrei bisogno di vedere il valore di default (cognome per esempio)

se clicco nel clicco nel campo il valore di default sparisce e ci scrivo, però se premo "invia richiesta" il form deve contrallare che ci siano i dati compilati e NON quelli di default, onoestamente non ho mai utilizzato onblur, onfocus e required tutti assieme quindi non saprai nemmeno se funziona.

Intanto, grazie mille.
: Re:Chronoform + onfocus e onblur non funziona
: vales 13 Nov 2010, 17:47:56
La stringa che ho postato è la tua e ponevo delle domande su cose che non mi tornavano.

Forse è meglio ripartire da 0.

Che risultati vuoi ottenere con onfocus e onblur avendo presente che

onfocus fa eseguire qualcosa quando il campo prende il focus del mouse

onblur fa eseguire qualcosa quando il campo perde il focus del mouse

quindi tutto quello che viene fatto da onfocus, se si riferisce al campo del form, poi viene perso con onblur, se anche esso agisce sul campo.
: Re:Chronoform + onfocus e onblur non funziona
: Mr. Nameless 13 Nov 2010, 21:00:38
Ciao,

quello che mi serve è semplice :

- un controllo sulla compilazione del campo (required)
- un valore iniziale (nome per esempio)

in sostanza il campo non può essere accettato se contiene il valore di default ma deve contenere le informazioni inserite dall'utente (in questo caso il nome reale)

grazie,
AA
: Re:Chronoform + onfocus e onblur non funziona
: vales 13 Nov 2010, 22:01:12
Scusa ma chronoform ti da già questi controlli e mi sembra che required lo hai già messo su alcuni campi quando hai creato il form con il wizard se non sbaglio.

Per controllare il valore di un campo lo verifichi nella finestra Validation.

Metti  Yes in Enable server side validation

usi un po' di php tipo questo in Server side validation code

:
if (JRequest::getVar('nome_campo','','post')=="valore_da_controllare") {
return "devi inserire un valore diverso da: valore_da_controllare";
}

Non serve javascript in questo caso.

Si può fare il controllo anche con javascript ma  anzichèonblur userei onchange che si attiva quando cambia il valore di un campo credo fosse questo il problema del funzionamento.
: Re:Chronoform + onfocus e onblur non funziona
: Mr. Nameless 14 Nov 2010, 12:41:20
Grazie! :D

adesso un altro problema (dimmi se devo aprre un altro thread).

se per errore sbagli a digitare le cifre del captcha, si resettano tutti i campi, c'è modo di tenerli in memoria anche in caso di errore ?

Grazie mille,
AA
: Re:Chronoform + onfocus e onblur non funziona
: vales 14 Nov 2010, 12:46:25
Meglio aprire un altra discussione con titolo adeguato.