Apro una finestra di pop-up nella quale compaiono vari radio button
come posso assegnare a un campo nascosto nella finestra principale il valore corrisopndente al radio scelto nel pop up?
Mi faccio i complimenti da solo per la mia grammatica
Apro una finestra di pop-up nella quale compaiono vari radio button
come posso assegnare a un campo nascosto nella finestra principale il valore corrisopndente al radio scelto nel pop up?
Mi faccio i complimenti da solo per la mia grammatica
Supponendo che non ci siano frame:
Nella popup:
<input type="radio" name="nomeuno" value="valset" onClick="window.opener.NOMEFORM.NOMECAMPO.value += this.value;">
<input type="radio" name="nomeuno" value="valclr" onClick="window.opener.NOMEFORM.NOMECAMPO.value += this.value;">
Dovrebbe funzionare (non lo ho provato).
Naturalmente NOMEFORM e NOMECAMPO devono esistere nella finestra padre. Con questo codice ogni volta che vinee premuto un pulsante viene aggiunto un valore, se vuoi sostituirlo, devi sostituire il += con =
Ciao
Michele
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
facciamo cosi':crea un file chiamato come vuoi e dentro BODY copiaci 'sta roba:
<FORM name="form" >
<INPUT type="text" name="campo" >
L'ho messo "text" per comodita'<BR> <INPUT type=button onclick="newWindow=window.open('./child.html','','width=200,height=200,location=yes' );newWindow.creator=self" value="vai" name="Button1" > </FORM>
poi crei un file che si chiama "child.html" e dentro body metti questo:
<FORM NAME="form">
<input type="radio" name="r" value="1" checked> <input type="radio" name="r" value="2">
<input type="button" value="OK" onclick="alert('a questo punto dovrebbe assegnare il valore del radio scelto al campo nella finesta principale');window.close()">Clicca!!!
</FORM>
intendevo
il nel primo ci metti:
<FORM name="form" ID="Form1">
<INPUT type="text" name="campo" > L'ho messo "text" per comodita'
<INPUT type=button onclick="newWindow=window.open('./child.html','','width=200,height=200,location=yes' );newWindow.creator=self" value="vai" >
</FORM>
e in "child.html" ci metti
<FORM NAME="form">
<input type="radio" name="r" value="1" checked> <input type="radio" name="r" value="2">
<input type="button" value="OK" onclick="alert('a questo punto dovrebbe assegnare il valore del radio scelto al campo nella finesta principale');window.close()">
</FORM>
Attenzione. Il nome form non va bene come nome di un form: parola riservata.
Lo script che ti ho dato prima, scriveva il value al click sul bottone, tu ora chiedi che venga scritto al click su un altro bottone.
"child.html" ci mettiNota: nella pagina padre, il tag form deve essere:codice:<form name="form2"> <input type="radio" name="r" value="1" checked> <input type="radio" name="r" value="2"> <input type="button" value="OK" onclick="var rr=(this.r[0].checked) ? this.r[0].value : this.r[1].value; window.opener.Form1.campo.value = rr; window.close()"> </form>
<FORM name="Form1" ID="Form1">
Ciao
Michele
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
ok pero' se nella finestra di pop-up ho 10 radio non posso fare il controllo su tutti!!!
Per esempio nel campo di tipo SELECT c'e' una proprieta' che si chiama selectedIndex(o selectedItem, non ricordo), che ti restituisce l'indice dell'elemento selezionato cosi':
document.form.select[document.form.select.selectedIndex].value
non c'e' una proprieta' simile per i radio?
No, non c'e`.
Supponendoi tuoi dieci radio con lo stesso nome, devi fare un loop su tutti:
A quel punto nonconviene scrivere il JS dentro l'attributo onclick, ma conviene fare una funzione a aprte (da mettere in head):
Da chiamare cosi`:codice:function copiaradio(rr) { var rv; for (var i=0; i<rr.length; i++) { if(rr[i].checked) { rv = rr[i].value; break; } } window.opener.document.NOMEFORM.NOMECAMPO.value = rv; return; }
<input type="button" onClick="copiaradio(this.form.NOMERADIO);">
Ciao
Michele
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati