Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    problema con una data sotto Opera

    ciao a tutti,

    ho scritto un piccolo script che funziona correttamente con IE6, Konqueror 3.0 ma non sotto Opera 6.0 e non capisco perchè:

    <input type=text name=data size=10 maxlength=10 id=login>
    <script language=JavaScript src=data.js></script>

    ---data.js---
    data = new Date();
    anno = data.getFullYear();
    mese = data.getMonth();
    giorno = data.getDate();
    if (mese < 10) mese = "0"+mese;
    if (giorno < 10) giorno = "0"+giorno;
    stringaData = anno + "-" + mese + "-" + giorno;
    document.form1.data.value = stringaData;
    -------------

    Con ie e konqueror il campo data viene riempito correttamente, con opera rimane vuoto... sapete come mai??

    ciao
    ricordatevi di non mangiare mai la neve gialla

    ultimo sito realizzato:
    www.cferrari.it

  2. #2
    Reale_Augello
    Guest

    Prova...

    ... in questo modo:

    codice:
    document.form1.elements["data"].value = stringaData;
    Se non dovesse andare neanche così, prova a cambiare il nome del campo, che potrebbe andare in collisione con la variabile "data" che hai creato per gestire la data attuale.

    Ciao !

  3. #3
    uhm... ho provato sia con elements["data"], che cambiando la variabile "data" utilizzata all'interno dello script: con ie,konqueror funziona e opera no...

    credo sia un problema proprio di opera visto che inserendo delle alert nello script non vengono eseguite.
    ho provato allora a inserire le virgolette e a scrivere in un altro modo il percorso al file:
    <script language=JavaScript src="./data.js"></script>

    ma continua a non funzionare...
    ricordatevi di non mangiare mai la neve gialla

    ultimo sito realizzato:
    www.cferrari.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se usi gli attributi name e id (come consigliato dalla programmazione moderna), i rispettivi valori devono essere uguali. Probabilmente opera cerca l'id del campo anziche` il name.
    Comunque anch'io non userei "data" come nome di un campo.


    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ho cercato di modificare il tutto con i vs. consigli, nella pagina ho messo:

    <input name="data" type="text" size="10" maxlength="10" id="data">
    <script language="JavaScript" src="./data.js"></script>

    (ma lo stile che prima applicavo con id adesso dove lo applico?? devo usare class x forza?)

    lo script è diventato:

    ---data.js---
    day = new Date();
    anno = day.getFullYear();
    mese = day.getMonth();
    giorno = day.getDate();
    if (mese < 10) mese = "0"+mese;
    if (giorno < 10) giorno = "0"+giorno;
    stringaData = anno + "-" + mese + "-" + giorno;
    document.form1.data.value = stringaData;

    (ho cambiato la variabile data a day)

    contina cmq a nn funzionare..
    stringaData = anno + "-" + mese + "-" + giorno;
    document.form1.data.value = stringaData;
    ricordatevi di non mangiare mai la neve gialla

    ultimo sito realizzato:
    www.cferrari.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    1. dovresti anche dire che errore ti da`.


    2. inserisci un alert, per verificare se l'errore e` nel calcolo o nella visualizzazione:

    stringaData = anno + "-" + mese + "-" + giorno;
    alert("stringaData = "+ stringaData);
    document.form1.data.value = stringaData;


    3. Il tuo campo ha ancora nome "data"


    4. Lo stile puoi applicarlo all'id del campo, come prima, solo che l'id e` uguale al nome.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    1- non mi da nessun errore.. semplicemente non fa nulla

    2- se inserisco gli alert nello script, un qualsiasi alert in una qualsiasi posizione non vengono eseguiti (nb. data.js è esterno).

    3- il campo si chiama data ma ho cambiato il nome della variabiale nello script, non posso modificare il nome del campo perchè invio dati ad un altra pagina.

    ciao, a casa provo con opera 7 x vedere cosa succede...
    ricordatevi di non mangiare mai la neve gialla

    ultimo sito realizzato:
    www.cferrari.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    IL fatto di essere in unfile a parte non cambia nulla: se nell'esecuzione dello script c'e` un alert deve visualizzarlo. Se non lo fa e` perche` nonentra nello script.

    Ora nelle varie versioni che hai postato ci sono errori HTML, che normalmente i browser ignorano, ma che Opera potrebbe non digerire, ad esempio le virgolette attorno a tutti i valori degli attributi.

    Inoltre lo script dovrebbe essere eseguito prima del caricamento del resto della pagina. L'oggetto cui si riferisce e` definito prima?

    Comunque io preferirei una bella funzione chiamata con l'evento onLoad.

    Se devi tenere il nome "data" indirizzalo in questo modo:
    document.form1.elements["data"].value = stringaData;
    Per una prova cambia comunque il nome "data" del campo: ti togli un pensiero.

    Facci sapere come va con Opera7.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Originariamente inviato da Mich_
    IL fatto di essere in unfile a parte non cambia nulla: se nell'esecuzione dello script c'e` un alert deve visualizzarlo. Se non lo fa e` perche` nonentra nello script.
    Hai perfettamente ragione ma non è così... ho piazzato due alert, una all'inizio dello script vuota (alert()) e una alla fine (alert(stringData)). Se lo script è esterno alla pagina nessuna alert viene chiamata, se inveve è interno sia la prima che la seconda vengono chiamate e stringData è corretta.
    Inoltre lo script dovrebbe essere eseguito prima del caricamento del resto della pagina. L'oggetto cui si riferisce e` definito prima?
    L'oggeto è definito immediatamente prima dell'apertura del tag script.

    Se devi tenere il nome "data" indirizzalo in questo modo:
    document.form1.elements["data"].value = stringaData;
    Per una prova cambia comunque il nome "data" del campo: ti togli un pensiero.

    Facci sapere come va con Opera7.
    Si si.. ho provato a cambiarlo ma niente

    Cmq con Opera 7 funziona bene, e anche con gli altri browser...
    ricordatevi di non mangiare mai la neve gialla

    ultimo sito realizzato:
    www.cferrari.it

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se non ti da` neppure il primo alert, significa che lo script non viene caricato oppure non viene chiamato.

    Controlla la sintassi del tag <script>, e vedi se c'e` un reference manual per HTML e/o JS nel sito di Opera, poi confronta le due sintassi.
    Quello che sospetto e` che la sintassi che usi non sia riconosciuta dal browser (ma nella versione piu` recente viene invece riconsociuta). Potrebbe essere un baco di Opera6, oppure l'uso di una sintassi "lasca"

    La sintassi del tag script e`:
    <script language="Javascript" type="text/javascript" src="path/nomefile.js"></script>

    Non devi mettere altri attributi.


    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.