Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    ra.denis
    Guest

    [js] controllo campi form/data :fagiano:

    proprio non ci riesco

    allora, devo controllare dei campi di un form riguardo a delle date.
    per impostare la data odierna ho fatto cosi':

    var curdate = new Date();
    var curday = ((curdate.getDate()) -1 ); // day
    var curmonth = curdate.getMonth(); // 0 is January, December is 11

    function controldate() {

    // change month
    document.fm_search.Dep_Month.options.selectedIndex = curmonth;
    document.fm_search.Rtn_Month.options.selectedIndex = curmonth;
    // change day
    document.fm_search.Dep_Day.options.selectedIndex = curday;
    document.fm_search.Rtn_Day.options.selectedIndex = curday;
    }

    e tutto va bene... pero' quelli che ricevono gli ordini hanno cambiato un po' di regole e di conseguenza ricevono degli ordini errati.

    la regola principale e': puoi prenotare solo dalla data di oggi + 3 in poi...

    e qui... ok, ho modificato la riga in questo modo

    var curday = ((curdate.getDate()) +2 ); // day

    ma che succede ora?!

    intanto l'utente deve impostare data di partenza e di ritorno... se il biglietto e' di sola andata non c'e' bisogno di impostare quella di ritorno, quindi capita che la data di ritorno sia prima di quella di partenza... e il loro server da di conseguenza errore...

    poi, alcuni visitatori provano cmq a prenotare nella data odierna, stesso solito problema di prima.

    ho provato quindi a scrivere delle funzioni per controllare i vari campi, ma non mi funzionano (non danno errore ma non fanno niente).

    una per esempio e' questa.

    function checkday () {
    if (document.fm_search.Dep_Day.options.selected < curday) {
    alert ("Non puoi");
    document.fm_search.Dep_Day.options.selectedIndex = curday;
    }
    }

    potete aiutarmi!?


  2. #2
    Reale_Augello
    Guest

    Potresti...

    ... essere un tantino più chiaro ?
    Hai due menu a tendina con delle date (di partenza e di arrivo). Cosa vuoi applicare su di essi ?

    :master:

  3. #3
    ra.denis
    Guest

    sorry

    in pratica 2 cose...

    in quei menu' vorrei impedire che l'utente selezioni una data inferiore a quella di oggi + 3.

    nel caso in cui ci provi cmq, un messaggio di alert che gli spieghi perche' no e rimettere quindi la data a posto.

    se la data di destinazione poi diventa antecedente a quella di partenza, che cambi di conseguenza.

    (dio pure la rima e' venuta )

  4. #4
    Reale_Augello
    Guest

    Se...

    ... mi dai qualche minuto provo a scrivere qualcosa, OK ?

  5. #5
    ra.denis
    Guest
    no problem, anzi, grazie

  6. #6
    Reale_Augello
    Guest

    Prova...

    ... a dare un'occhiata qui:

    http://www.maiueb.it/forumhtmlit/ra.htm

    È solo parte di ciò che volevi (solo la data di partenza), ma può darti qualche dritta...

  7. #7
    ra.denis
    Guest
    ottimo... almeno so da dove partire, grazie!

  8. #8
    Reale_Augello
    Guest

    ...

    Originariamente inviato da ra.denis
    ottimo... almeno so da dove partire, grazie!
    Se hai bisogno fammi un fischio.

  9. #9
    ra.denis
    Guest

    non e' il massimo del coding...

    ... ma almeno funzia!

    // JavaScript Document

    var curdate = new Date();
    var curday = ((curdate.getDate()) +2 ); // day
    var curmonth = curdate.getMonth(); // 0 is January, December is 11

    function checkday(fm_search) {
    var attuale=new Date();
    //alert ("Data di oggi :" + attuale);
    //var g=parseInt(fm_search.Dep_Day[fm_search.Dep_Day.selectedIndex].value);
    var g=(fm_search.Dep_Day[fm_search.Dep_Day.selectedIndex].value);
    var m=((fm_search.Dep_Month[fm_search.Dep_Month.selectedIndex].value)-1);
    var a=(fm_search.Dep_Year[fm_search.Dep_Year.selectedIndex].value);
    var datapartenza=new Date(a, m, g);
    //alert ("data di partenza :" + datapartenza);
    var giornidifferenza=Math.ceil((datapartenza-attuale)/1000/60/60/24); // calcolo i giorni che intercorrono tra oggi e la data scelta
    if (giornidifferenza < 3) {
    alert("You cannot book a ticket on this day. \n You have to book with at least 3 days of advance.");
    // reset the date to a correct one
    document.fm_search.Dep_Day.options.selectedIndex = curday;
    document.fm_search.Dep_Month.options.selectedIndex = curmonth;
    return false;
    }
    else {
    // if everything is okay change the return date.
    document.fm_search.Rtn_Day.options.selectedIndex = g;
    document.fm_search.Rtn_Month.options.selectedIndex = m;
    }
    }

    adesso devo raffinarlo un po!

    grazie 1000

  10. #10
    Reale_Augello
    Guest

    Figurati...

    ... mi fa piacere che te la sia cavata.

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.