Div, form e riferimenti agli oggetti

  • Creatore Discussione Creatore Discussione BobPhis
  • Data di inizio Data di inizio

BobPhis

Nuovo Utente
2 Giu 2007
2
0
0
Salve,

ho un piccolo grande problema; ho collocato all'interno di un DIV un form con alcuni campi; il problema è che ho scritto una piccola funzione per controllare che, all'atto dell'invio del form, i campi non siano vuoti. Il problema sorge in quanto non riesco a comprendere come far riferimento agli elementi del form per controllare che la proprietà value sia non vuota. Ho fatto delle prove cercando di ottenere il valore presente nel campo, ma nulla di fatto.....Ringrazio anticipatamente tutti coloro che vorranno darmi indicazioni. Di seguito riporto il codice.


<div id="Div1">
<script type="text/javascript">
function controlla(){
alert(document.getElementById('frmref').nominativo.value);
}
</script>
<form name="frm_ref" id="frmref" method="post" onsubmit="controlla()">
<table width="400" border="0" cellspacing="0" cellpadding="0" class="testo_norm">
<tr>
<td width="80">Titolo:</td>
<td width="320">
<select name="titolo" class="testo_norm">
<option value="1" selected>Sig.</option>
<option value="2">Sig.ra</option>
</select>
</td>
</tr>
<tr>
<td width="80">Nominativo:</td>
<td width="320">
<input type="text" name="nominativo" size="50" maxlength="60" class="testo_norm" value="">
</td>
</tr>
<tr>
<td width="80"> </td>
<td width="320" align="right" valign="middle">
<input type="submit" name="Submit" value="Registra" class="testo_norm">
</td>
</tr>
<tr>
<td width="80"> </td>
<td width="320"> </td>
</tr>
</table>
</form>
 
Ciao :)

Per fare una cosa del genere in Javascript, la cosa migliore è eliminare l'input SUBMIT ed inserire un semplice bottone:
Codice:
<input type='button' value='Testo_Bottone' onclick='javascript:controlla();'>
Poi, inserirai nella funzione controlla() un controllo, che se verificherà l'esattezza del compilamento del modulo avvierà il submit del form:
Codice:
if(controllo=="ok"){
document.forms.nome_form.submit();
}

:byebye:
 
Salve,

innanzitutto ti ringrazio per il tuo interessamento e per la risposta.
Purtroppo il problema è più complesso di quanto mi aspettassi inizialmente. Mi spiego: il tutto nasce dalll'utilizzo del form all'interno di un generatore di finestre di popup opensource molto carino, OpenPopUps (http://www.openwebware.com), che funziona benissimo per finestre a contenuto statico. Per esigenze di sviluppo, avevo pensato di inserirvi dentro un form per l'immissione di dati secondari. Il fatto è che non riesco a leggere i valori dei campi con funzioni javascript come quella che gentilmente mi segnalavi.
In realtà ho provato anche ad assegnare un id a ciascun campo per poi leggerne il valore attraverso la sintassi document.getElementById('nome_campo').value; il tutto funziona perfettamente se il form è inserito nella pagina html ma non se inserito nel DIV richiesto per far funzionare la finestra.
Ritengo che il problema nasca dal fatto che la finestra di popup viene "costruita" attraverso codice javascript che rimescola in un qualche modo le carte ma, essendo poco pratico di javascript, mi sfugge il perchè (anche dopo un primo esame del codice che permette di generare la finestra). Da neofita, pensavo banalmente di poter ottenere i valori (a me necessari) attraverso i metodi sopra descritti, ma non è così: l'unica cosa che riesco ad ottenere sono i valori di inizializzazione di value inseriti all'interno del tag del campo (ovvero, se specifico value="pippo", la lettura di document.getelementbyid('nome_campo').value non mi ritorna il valore inserito all'interno del campo ma quello di inizializzazione).
E' come se il submit del form non venisse eseguito appieno...???
Se interessa potrei riportare il codice completo sia della pagina html sia del generatore di popup per porlo all'attenzione. Grazie.
 
Capisco :)

Mi spiace ma tramite javascript non puoi far nulla di tutto ciò, perchè javascript non permette di passare valori da una pagina ad un'altra.

L'unica è utilizzare linguaggi lato server come ASP o PHP

Facci sapere se hai bisogno di ulteriori delucidazioni in proposito
:byebye:
 

Discussioni simili