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

    Modificare uno script per il controllo delle date

    Salve,
    Ho il seguente script:
    codice:
    'NELL'HEAD
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    
    function KW_checkDates(f1,f2,o1,o2,o3,d1,msg,p1) { //v1.0.4 Copyright Paul Davis
    	fVal1=MM_findObj(f1).value;fVal2=MM_findObj(f2).value;f1A=fVal1.split(d1);
    	f2A=fVal2.split(d1);d2=new Date();d1=new Date();oArr=new Array(o1,o2,o3);
    	rt=true;for (i=0;i<3;i++) switch(oArr[i]){case "m":d1.setMonth(f1A[i]-1);
    	d2.setMonth(f2A[i]-1);break;case "y":d1.setYear(f1A[i]);d2.setYear(f2A[i]);
    	break;case "d":d1.setDate(f1A[i]);d2.setDate(f2A[i]);break;}if(p1)
    	d1.setDate(d1.getDate()+1);if(d1>d2){alert(unescape(msg));rt=false}return rt;
    }
    -->
    </script>
    ..............
    'NEL BODY
    <form ...>
    <input name="INCASSO_DATA" type="text" id="INCASSO_DATA" size="20">
    <input name="data_ant" type="hidden" id="data_ant" value="01/06/2003">
    <input name="oggi" type="hidden" id="oggi" value="24/06/2003">
    <input type="submit" name="Submit" onClick="return KW_checkDates('data_ant','INCASSO_DATA','d','m','y','/','Errore',0)" value="INCASSA">
    </form>
    Questo script si occupa, all'onClick del pulsante Submit, di verificare che la data immessa nel campo "INCASSO_DATA" sia maggiore della data contenuta nel campo nascosto "data_ant" (entrambe in formato gg/mm/aaaa): se la condizione non è verificata, il form non parte.

    ...E fin qui nessun problema: ora, in aggiunta a questa prima verifica vorrei farne un'altra, sempre sull'onClick: e cioè, mi piacerebbe verificare che la data immessa nel campo "INCASSO_DATA" sia INFERIORE alla data contenuta nel campo nascosto "oggi"...

    Ho provato a smanettare un po', a mettere ad esempio:
    codice:
    onClick="return KW_checkDates('data_ant','INCASSO_DATA','d','m','y','/','Errore',0);return KW_checkDates('INCASSO_DATA','oggi','d','m','y','/','Errore2',0)"
    Oppure
    codice:
    onClick="return KW_checkDates('data_ant','INCASSO_DATA','d','m','y','/','Errore',0,'INCASSO_DATA','oggi','d','m','y','/','Errore2',0);"
    Ma senza risultato... (il tutto sempre su una riga, ma facendo copia/incolla qui mi spezzetta lo script...)

    Dato che ho scarsissime conoscenze di Javascript, cosa dovrei modificare affinchè il tutto funzioni? Tenete presente che non posso usare l'onSubmit del form perchè è già "impegnato" da un altro script... :-(

    Grazie in anticipo per le risposte!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Dovrebbe essere sufficiente:

    onClick="return (KW_checkDates('data_ant','INCASSO_DATA','d','m',' y','/','Errore',0) && KW_checkDates('INCASSO_DATA','oggi','d','m','y','/','Errore2',0))"

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Si, funziona! :-)
    Grazie davvero tante, mi hai salvato da una ricerca senza fine e da un mal di testa altrettanto infinito :-)

    A presto!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.