problema con radio button e campo di testo

Salve ho creato un form, che ha 2 radio button si, oppure no, se clicchi si il campo di testo si attiva ed esce la scritta '' PUOI RIEMPIRE IL CAMPO DI TESTO CON LA TUA MUSICA PREFERITA"

è fin quando nn hai riempito il campo di testo sottostante, quando premi il tasto invia ricompare la finestra di alert con sopra scritto " ATTENZIONE!, NON PUOI INVIARE IL FORM CON I DATI DA TE COMPILATI, FIN QUANDO NN AVRAI RIEMPITO IL CAMPO DITESTO CON LA TUA MUSICA PREFERITA".

Ora il mio problema è il seguente quando invece clicco no, ho fatto in modo che il campodi testo si disattivasse e comparisse la finestra di alert con su scritto: "NN PUOI INSERIRE LA TUA MUSICA PREFERITA", però quando poi premo il tasto invia mi esce lo stesso la finestra di alert con la scritta:"ATTENZIONE!, NON PUOI INVIARE IL FORM CON I DATI DA TE COMPILATI, FIN QUANDO NN AVRAI RIEMPITO IL CAMPO DITESTO CON LA TUA MUSICA PREFERITA", ovviamente tale finestra di alert mi impedisce di inviare il form con i dati riempiti. Come posso fare per eliminare questa seconda finestra di alert quando premo no?, praticamente il problema e tutto in questa funzione, che va bene per il si ma non per il no eccola:

if (document.frmModulo.txtVel.value==""){ 
alert(":"ATTENZIONE!, NON PUOI INVIARE IL FORM CON I DATI DA TE COMPILATI, FIN QUANDO NN AVRAI RIEMPITO IL CAMPO DITESTO CON LA TUA MUSICA PREFERITA") 
document.frmModulo.txtVel.focus(); 
return false; 
}
inviato 8 anni fa
mela81
X 0 X

Ciao,

prima del codice che hai scritto devi riportare anche il controllo del valore del radio button che sia diverso da no.

:bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

a che serve?, è solo il no che nn va, se ti riferisci al codice che fa uscire la finestra  di alert sia per il si che per il no, cosa che in quest' ultimo caso nn dovrebbe accadere, tale codice identico sia per il si che per il no, il mio problema rimane diversificarlo. Come devo fare?

risposto 8 anni fa
mela81
X 0 X

Ciao,

devi verificarlo prima del codice che hai postato. Devi verificare che valore ha il radio button. Io ti propongo questa soluzione:

var valore_radio = "";
for (var j=0; j<document.forms[0].prova.length; j++) {
   if(document.forms[i].prova[j].checked)
      valore_radio = document.forms[i].prova[j].value;
}

Ovviamente ti basta sostituire il nome "prova" con quello del radiobutton e completare il tuo codice in questo modo:

if (valore_radio == 'si')
  if (document.frmModulo.txtVel.value==""){ 
    alert(":"ATTENZIONE!, NON PUOI INVIARE IL FORM CON I DATI DA TE COMPILATI, FIN QUANDO NN AVRAI RIEMPITO IL CAMPO DITESTO CON LA TUA MUSICA PREFERITA") 
    document.frmModulo.txtVel.focus(); 
    return false; 
}

Buona giornata

:bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Grazie, funziona :) ma è subentrato un'altro problema nn mi riconosce più il campo mail, nel senso che da quando ho aggiunto la funzione da te indicata ho risolto il problema da me indicato nel post, ma si è creato un altro il problema: il controllo  javascript da me creato per la mail relativo a vedere se il campo risulta vuoto

oppure no nn funziona più, e non funziona più neanche il controllo per vedere se il formato della mail e valido oppure no perchè mi accade questo?, :o in altri termini adesso passo direttamente al controllo dei radio button saltando  competamente il controllo sul campo mail, senza alcun motivo apperente vorrei cercare di capire il perchè visto che prima, del tuo preziosissimo aiuto, il problema del campo mail non c'era

risposto 8 anni fa
mela81
X 0 X

  O0anche questo  problema è risolto: ho dovuto togliere una parte di codice da te postato  pecisamente la seconda riga del primo pezzo di codice, e sostituire, sempre nel primo pezzo di codice, i valori letterali  compresi tra parentesi quadre, con valori numerici.

Comunque  al di là di questi piccoli problemi, il tuo aiuto mi è stato davvero molto utile!, senza non so proprio come è quando avrei risolto il problema indicato all'inizio.

Grazie ancora, e a presto

  :bye:

risposto 8 anni fa
mela81
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda