Newsgroup: it.comp.lang.javascript
Titolo: Ancora

Nessuno sa dirmi come posso aprire una pagina con un'ancora, tipo
questa?
onclick="document.location='pagina.php#fine'; return 0;"
(questo codice dà errore, se tolgo #fine non dà errore!)
Massimo

di per sč, almeno con ie, dovrebbe funzionare (meglio un
window.location.href='.......#fine');
č quel return 0 che non capisco...prova a mettere un return false.
Se non va posta un po' piů di codice
p.s. se non ricordo male l'hash aveva "problemi" con IE4 (ricaricava sempre
la pagina, anche se puntavi alla stessa), e sempre se non ricordo male anche
con mac...ma non penso c'entri in questo contesto

Se non va posta un po' più di codice
<INPUT type="reset" name="reset_msg" value="Reset" class="bottone"
onclick="window.location.href='contatto.php#messaggio_dal_sito';">
Se lo si vuol vedere anche in azione, eccolo qua:
http://www.sentowatt.altervista.org/contatto.php#messaggio_dal_sito
(mi raccomando di indicare Mhaxx come destinatario, che non parta
qualche mail nelle prove!)
Spiego meglio il mio problema: io vorrei solo cancellare tutti i campi
del form quando viene premuto reset, tutto qui. Purtroppo questo
funziona se si compila per la prima volta il form, ma se si compila il
form dopo averlo già inviato una volta, in questo caso si torna al
form con i campi già valorizzati con quanto già inserito dall'utente
(eccetto il campo o i campi inseriti sbagliati).
Es. compilare il form mettendo solo xyz come testo del messaggio e
indicando Mhaxx come destinatario => premere invio => si ottiene
errore perchè manca email => premendo Ok si torna al form e il campo
Messaggio è ancora xyz.. ma se si preme reset non si svuota, perchè in
PHP ho messo che ha come testo xyz, quello inserito inizialmente
dall'utente.. quindi reset non riesce a svuotare quel campo. Ho però
triovato un trucco per far pulizia nel form, cioè ricaricare la pagina
contatto.php. Ok, funziona. volendo però far caricare
contatto.php#messaggio_dal_sito, non funziona niente, ecco il
problema!!!
Se qualche anima pia avesse un'idea.. :-(
Mhaxx

I campi non sono molti, non fai prima a mettere un tasto dove, premendolo,
li setta tutti a ""?

li setta tutti a ""?
Si può fare? Cosa devo scrivere di preciso?
Ma siamo sicuri che impostando da JS tutti i campi a "" questi
prendano "" come valore di default? Forse se ti posto un esempio di
gestione di campo con PHP capisci:
<INPUT type="text" name="nome" size=15 maxlength=50 value="<?=
isset($_POST["nome"]) ? $_POST["nome"] : "" ?>">
Come vedi la prima volta che visiti il form questo campo (nome) è
vuoto; se invece si torni dopo aver già compilato il form
erroneamentoe  e aver inviato (ovvero ci torni per correggere qualche
dato nel form), hai che questo campo ti mostra il valore che avevi già
inserito, sarà (una volta interpretato il PHP) una cosa del tipo:
<INPUT type="text" name="nome" size=15 maxlength=50 value="ciccio">
Ebbene: posso davvero con JS dire che il campo nome abbia valore ""
sebbene nel codice ho value="ciccio"?
Mhaxx

Ti ho scritto un esempio volante:
<html><head>
<script language='JavaScript'>
 function azzera_form() {
  with(document.forms['miaform'])
   for(var x=0;x<elements.length;x++)
    if(elements[x].type=="text") elements[x].value="";
 }
</script>
</head><body>
<form name='miaform'>
<input type=Text name='testo1' value='pippo'>
<input type=checkbox name='chk'>
<input type=radio name='mioradio'>
<input type=text name='testo2' value='pippo2'>
</form>
<input type=button onclick='azzera_form()' value='azzera'>
</body></html>

>Ti ho scritto un esempio volante:
Grandioso, è proprio quello che mi serviva!
Ho leggermente modificato la tua funzione:
function azzera_form_messaggio_dal_sito()
{
  with (document.forms['form_messaggio_dal_sito'])
  {
    elements['nome'].value = "";
    elements['cognome'].value = "";
    elements['email'].value = "";
    elements['eta'].value = "";
  }
}
Questi sono tutti campi text, non so come regolarmi con i
select/option e i radio.
Ho ad es. un select "age" che ha 3 option con value rispettivamente
"", "minorenne", "maggiorenne" e vorrei mettere il default (ovvero la
stringa "selected") per es. sul secondo (minorenne). Come faccio?
Analogo per il radio "destinatario" che ha 3 values: "band", "ciccio",
"pippo". Vorrei mettere "checked" sul primo (band). Come faccio?
Grazie 1000!
Massimo

 select/option e i radio.
per i radio dovrebbe bastare, nel tuo caso, mettere un checked=true al primo
che trovi;
per i select un selectedIndex=0;
Vedi un po' se riesci (sono proprio di corsissima); se non riesci posta il
codice cosě lo vediamo

Quello che non capisco č come selezionare un preciso option o un certo
radio.. non penso sia necessario fare un ciclo.. penso si possa
"selezionare" un particolare option attraverso i campi di element..
no?
Massimo

 "selezionare" un particolare option attraverso i campi di element..
Per le option: se sai la posizione basta assegnare il selectedIndex,
altrimenti devi ciclare la collection options per trovare il valore.
Per radio devi invece ciclare la collection:
var radio=document.forms['tuaform'].elements['radio'];
for(var x=0;x<radio.length;x++)  if(radio[x].value=='tuovalore')
radio[x].checked=true;

radio[x].checked=true;
Ok, funziona!
Le options no, però... ecco il codice che ho scritto:
var select =
document.forms['form_messaggio_dal_sito'].elements['eta'];
 for (var x = 0; x < select.length; x++)
  if (select[x].value == '')
    select[x].selectedIndex = 0;
Non mi fa niente... eppure l'opion da mettere a default è quella con
value "".
Massimo

 document.forms['form_messaggio_dal_sito'].elements['eta'];
La collection è options:
  var
select=document.forms['form_messaggio_dal_sito'].elements['eta'].options;
  for(var x=0;x<select.length;x++) alert(select[x].value);

   alert(select[x].value);
Come corpo del for ho messo:
if (select[x].value == '')
  select[x].selectedIndex = 0;
..ma non funziona!
Di certo seleziona il value giusto, ma credo che
select[x].selectedIndex = 0 non faccia quello che deve fare..
Perdonami, spero sia l'ultima volta che ti disturbo.. (si vede che non
so un'acca di JS?? bisogna che mi metta a impararlo una volta o
l'altra...)
Massimo

>   select[x].selectedIndex = 0;
.... = x;

.... = x;
In realtà è: select.selectedIndex = x;
Ok, ora tutto funziona!
Grazie ancora, ciao.
Massimo

 Grazie ancora, ciao.
Di niente...e ricorda la promessa (appena puoi studiati un po' di javascript
che non morde!)

che non morde!)
Mea culpa, ma purtroppo ho iniziato studiandomi l'HTML, poi un pò di
CSS.. e poi ho saltato JS passando a PHP, tanto tutti mi dicevano:
1) con PHP fai tutto quello che puoi fare con JS
2) non è detto che tutti i browser supportino JS, quindi tanto vale
usare PHP (o cmq un linguaggio server side)
Mi aspetto smentate e commenti, soprattutto sul secondo punto (mi
interessa sapere se davvero una volta che riempio le mie pagine di JS
dopo rischio che qualcuno non le visualizzi correttamente a causa del
mancato supporto... possibile?!?!?).
Massimo

 mancato supporto... possibile?!?!?).
Si, e' possibile. Considera pero' che e' piu' probabile che uno non le 
visualizzi perche' ha disabilitato volontariamente javascript (di 
default e' abilitato su tutti i browser, che io sappia), piuttosto che 
il mancato supporto totale di questo linguaggio (a parte casi come 
browser per persone con particolari handicap fisici, tutti i browser da 
parecchi anni ormai supportano Javascript).
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 usare PHP (o cmq un linguaggio server side)
I browser supportano praticamente tutti JS ma il problema è che
lo implementano in maniera più o meno leggermente diversa :-) ed è
li che entri in gioco tu :)
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
rhy...@NOSPAMmyself.com

 mancato supporto... possibile?!?!?).
Ho smentito abbastanza chiaramente? :-)
JavaScript è l'unico linguaggio usabile lato client; non puoi comunque avere
la certezza che funzioni correttamente con tutti i browser perché il browser
può, volendo (il masochismo è una pratica molto diffusa!), disattivare
javascript...inoltre javascript di netscape ha qualcosa di diverso da
jscript di Microsoft e, quindi, occorre usare con attenzione alcuni metodi
(però nella reference di Microsoft è chiaramente scritto da quale versione
di IE è stato implementato)

Rispondo a tutti assieme..
A parte il fatto che un ling. server side lavora sul lato server ed
uno client side lavora sul lato client, ovvero, a prescindere dalla
prospettiva, ci sono delle cose che uno può fare o l'altro no?
Per quel che ne so io no, o meglio, magari usando il linguaggio dal
lato sbagliato si perde in semplicità, performance, riusabilità, etc,
ma cmq le cose si riescono a fare lo stesso. Questo, me lo confermate
o no?
Quanto al discorso supporto JS, devo dire che non è una cosa da
sottovalutare. Il mio sito è aperto a tutti e quindi mi posso
aspettare che arrivi il tizio che preferisce non eseguire JS (e quindi
l'ha disabiitato): in questo caso sono fregato! Dovrei fare un
controllo per vedere se ha il supporto e nel caso non l'abbia
prevedere una gestione alternativa senza JS (PHP appunto!). E' così
che si fa?
Infine: alle diverse interpretazioni del JS da parte dei vari browser
sono già abituato con l'HTML.. quindi niente di nuovo, solo una
scocciatura grande come una casa che si ritrova anche qui.. :-(
Massimo

 matematica ci fai tutto quello che puoi farci con l'italiano.
:-))
Bentornato caro Zer0

 o no?
Leggi su. Cmq la risposta breve e' "no".


 
bravo.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG