Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    problema banale passaggio parametro data..

    Scusate la semplicità del problema, ma non riesco proprio ad uscirne....

    Ho un campo di una form che gestisco così

    codice:
    <input type="text" maxlength="100" name="DATA_PROX_SOLL" onchange="javascript:contdata(DATA_PROX_SOLL); cambiadataproxsoll(DATA_PROX_SOLL)" value="<%=vc_dataproxsoll%>" size="10" class="campodataproxsoll2">
    Dove inserendo la data nel formato ddmmyyyy o nel formato dd/mm/yyyy, attraverso la funzione contdata me la restituisce sempre nel formato dd/mm/yyyy (per esigenze di archiviazione nel db).

    Il problema è che nella seconda funzione che richiamo nell'onchange, faccio questo
    codice:
    function cambiadataproxsoll(dataproxsoll) 
    {
             if (confirm("Attenzione. E' stata cambiata la data di prossimo sollecito. Procedere? "))
              {
                  var Dayy = dataproxsoll.getDay()
                  document.datiform.DATA_PROX_SOLL.focus();
              	 return;
              }
              else
               self.location.reload(true);
              
    }
    e mi restituisce questo errore
    "proprietà o metodo non supportati dall'oggetto"

    Dove sbaglio?

    Grazie in anticipo per l'aiuto

    Paolo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Le sto provando tutte, ma niente da fare...


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    Risolto... ma ora ho un altro problema

    Prendendo spunto da questo link

    http://www.trans4mind.com/personal_d...ript/time2.htm

    Ho risolto la funzione così

    codice:
    function cambiadataproxsoll(dataproxsoll) 
    {
    
            if (confirm("Attenzione. E' stata cambiata la data di prossimo sollecito. Procedere? "))
              {
                  myDays= ["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica"]
                  myDate=new Date(eval('"'+dataproxsoll.value+'"'))
                  
                  document.datiform.DAYY_PROX_SOLL.value=myDays[myDate.getDay()]
                  document.datiform.DATA_PROX_SOLL.focus();
              	    return;
              }
              else
               self.location.reload(true);
              
    }
    Ora però ho questo altro problema.

    Da Javascript posso valorizzare solo i dati presenti in un testo? Mi spiego... il codice asp è il seguente

    codice:
    <input type="text" maxlength="100" name="DAYY_PROX_SOLL" value="<%=vc_dayyproxsoll%>" size="12" class="campinull">
    <%=vc_dayyproxsoll%>
    <input type="text" maxlength="100" name="DATA_PROX_SOLL" onchange="javascript:contdata(DATA_PROX_SOLL); cambiadataproxsoll(DATA_PROX_SOLL)" value="<%=vc_dataproxsoll%>" size="10" class="campodataproxsoll2">
    Se volessi valorizzare vc_dayyproxsoll, come faccio?

    nota: Le metto separate per problemi di "estetica"


  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    alcune imprecisioni:
    - se passi un nome di un elemento come argomento della funzione questo e' una stringa, quindi va tra ' o "
    e va considerato nel suo rapporto con il form, quindi non nomeArgomento.value, ma
    document.nomeForm.elements[nomeArgomento].value

    se il richiamo della funzione sfrutta un gestore evento dell' elemento stesso puoi passare this in modo da far riferimento immediato al campo
    quindi
    onchange="altraFunzione();cambiadataproxsoll(this) "

    - quando scrivi
    var Dayy = dataproxsoll.getDay()
    commetti 2 errori:
    valuti il campo, non il suo value
    anche se specificassi di star parlando del .value (automaticamente una stringa), esso non ha un metodo getDay()
    tu sai che e' una data, ma se non inizializzi un oggetto Date() per javascript quella resta una stringa

    codice:
    function cambiadataproxsoll(dataproxsoll) 
    {
             if (confirm("Attenzione. E' stata cambiata la data di prossimo sollecito. Procedere? "))
              {
    		var data=new Date(dataproxsoll.value)
                  var Dayy = data.getDay()
                  document.datiform.DATA_PROX_SOLL.focus();
              	 return;
              }
              else
               self.location.reload(true);
              
    }
    onchange="cambiadataproxsoll(this)"

    ciao

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    leggi lo stesso la risposta, anche se giunta in ritardo

    la nuova domanda non e', almeno per me, molto comprensibile

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Grazie della risposta...

    Il problema che pensavo aver risolto invece non funziona

    Infatti la data va passata in questo formato VVoVe:

    codice:
    ...
    myDate=new Date(eval('"02 december, 2007"'))
    ...
    mentre io la passo in questo formato 02/12/2007

    Vorrei sapere se
    1. E' vero che la Date accetta solo quel formato? (mi sembra strano...)
    2. Nel caso sia così, come faccio a trasformare la data da dd/mm/yyyy al formato javascript?



    Help me!!!
    Ci sto impiegando troppo tempo per risolvere questa cosa

    Grazie mille!!!

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il new Date accetta anche questo formato (tra quadre i valori facoltativi)
    new Date(yr_num, mo_num, day_num [, hr_num, min_num, sec_num, ms_num])

    quindi basta splittare per /, il separatore che ti aspetti, per ottenere i valori corretti per creare l' oggetto Date funzionante

    var dmy=dataproxsoll.value.split('/');
    var data=new Date(dmy[2],dmy[1],dmy[0]);

    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    ancora in alto mare...

    Niente... non funziona nemmeno così!!

    Questa è la funzione
    codice:
    function cambiadataproxsoll(dataproxsoll) 
    {
    
          		if (confirm("Attenzione. E' stata cambiata la data di prossimo sollecito. Procedere? "))
              {
                      Dayy= ["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica"]
                var dmy=dataproxsoll.value.split('/');
                var data=new Date(dmy[2],dmy[1],dmy[0]);
                
                var DayyNum = data.getDay()
                document.datiform.DAYY_PROX_SOLL.value=dayy[data.getDay()]
                 document.datiform.DATA_PROX_SOLL.focus();
              	    return;
              }
              else
               self.location.reload(true);
              
    }
    Dove la stringa che passo alla funzione è nel formato dd/mm/yyyy, richiamata da form nel seguente modo

    codice:
    <input type="text" maxlength="100" name="DATA_PROX_SOLL" onchange="javascript:contdata(DATA_PROX_SOLL); cambiadataproxsoll(this)" value="<%=vc_dataproxsoll%>" size="10" class="campodataproxsoll2">
    Tra l'altro se mi stampo il numero del giorno, mi da questi risultati
    01/03/2007 ---> 0 (ma sarebbe giovedì e non domenica)
    02/03/2007 ---> 1 (venerdi e non lunedì...)
    03/03/2007 ---> 2
    04/03/2007 ---> 3
    ....
    07/03/2007 ---> 6
    08/03/2007 ---> 0

    Ma non è che mi devo adattare l'array secondo quello che mi serve? Mi sembra davvero strano.... e poi se questo codice gira su un server in lingua inglese che succede? In locale è in italiano.

    Ma è possibile che sia così difficile? Sicuramente sbaglio in qualche banalità

    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    scusate se insisto... ma a nessuno è capitato lo stesso problema?

    Sto facendo un mare di test e, passando la data come mi ha suggerito Xinod, i giorni della settimana non corrispondono a quelli descritti sui manuali.

    Sapete da che dipende?

    Non riesco a uscirne da questa cosa...
    e non ho altre alternative, perchè non posso nemmeno ricaricare la pagina, ne fare altro (tipo, estrarmi la data accedendo al db-Oralce)


  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    errore mio,
    quando setti
    var data=new Date(dmy[2],dmy[1],dmy[0]);
    devi diminuire i mesi di 1
    var data=new Date(dmy[2],dmy[1]-1,dmy[0]);

    ciao

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.