繁体   English   中英

如何保存文本格式日期保存在 session

[英]How save text format date save in session

我将表单数据保存在 javascript 会话中,每个值在提交表单后我都得到了正确的值。 但是当我点击返回我的表单时,日期格式没有保存我在提交时间填写的正确日期格式。

15/11/1992 日期格式(当我提交表单时工作正常/)15,11,1992(当我重新加载页面时在 session 中获取此值)

"use strict";

//*********************  get and set details ******************
function getDetails(){
    if (typeof(Storage)!=="undefined"){
        if (sessionStorage.getItem("fName") !== null){   
            document.getElementById("fName").value = sessionStorage.getItem("fName");   
        }
        if (sessionStorage.getItem("lName") !== null){   
            document.getElementById("lName").value = sessionStorage.getItem("lName");   
        }
        if (sessionStorage.getItem("dob") !== null){   
            document.getElementById("dob").value = sessionStorage.getItem("dob");   
        }
        if (sessionStorage.getItem("gender") !== null){   
            document.getElementById("gender").value = sessionStorage.getItem("gender"); 
        }
        if (sessionStorage.getItem("street_address") !== null){   
            document.getElementById("street_address").value = sessionStorage.getItem("street_address"); 
        }
        if (sessionStorage.getItem("town") !== null){   
            document.getElementById("town").value = sessionStorage.getItem("town"); 
        }

        if (sessionStorage.getItem("state") !== null){   
            document.getElementById("state").value = sessionStorage.getItem("state");   
        }
        if (sessionStorage.getItem("postcode") !== null){   
            document.getElementById("postcode").value = sessionStorage.getItem("postcode"); 
        }
        if (sessionStorage.getItem("phone") !== null){   
            document.getElementById("phone").value = sessionStorage.getItem("phone");   
        }
        if (sessionStorage.getItem("other") !== null){   
            document.getElementById("other").value = sessionStorage.getItem("other");   
        }
        if (sessionStorage.getItem("otherText") !== null){   
            document.getElementById("otherText").value = sessionStorage.getItem("otherText");   
        }


    }
}

function setDetails(fName, lName, dob,gender,street_address,town,state,postcode,phone,other,otherText) {
    if (typeof(Storage)!=="undefined"){
        sessionStorage.setItem("fName", fName);
        sessionStorage.setItem("lName", lName);
        sessionStorage.setItem("dob", dob);
        sessionStorage.setItem("gender", gender);
        sessionStorage.setItem("street_address", street_address);
        sessionStorage.setItem("town", town);
        sessionStorage.setItem("postcode", postcode);
        sessionStorage.setItem("phone", phone);
        sessionStorage.setItem("other", other);
        sessionStorage.setItem("otherText", otherText);
    }
}
//*********************  get and set Job Ref ******************
function setJobRef (jobRefNumber){
    if(typeof(Storage)!=="undefined"){
        localStorage.setItem("jobRef", jobRefNumber);
    }
}

function getJobRef (){
    if(typeof(Storage)!=="undefined"){
        if (localStorage.getItem("jobRef") !== null) {
            var jobRef= document.getElementById("jobRef");
            jobRef.value = localStorage.getItem("jobRef");
        }   
    }
}
//*********************  validate ******************
function validate() {
    var errMsg="";
    var result=true;

    var fName=document.getElementById("fName").value;
    var lName=document.getElementById("lName").value;
    var dob = document.getElementById("dob").value.split("/");
        var date = new Date(dob[2], parseInt(dob[1]) - 1, dob[0]);
        var today = new Date();
        var age = today.getFullYear() - date.getFullYear();
    var gender = document.getElementById("gender").value;
    var street_address = document.getElementById("street_address").value;
    var town = document.getElementById("town").value;
    var postcode = document.getElementById("postcode").value;
    var phone=document.getElementById("phone").value;
    var state = document.getElementById("state").options[document.getElementById("state").selectedIndex].text;
    var other = document.getElementById("other").checked;
    var otherText  = document.getElementById("otherText").value;
    if (fName=="") {
        errMsg += "Please enter your first name.<br>";
        result=false;
    }
    if (lName=="") {
        errMsg += "Please enter your last name.<br>";
        result=false;
    }
    if (dob=="") 
    {
        errMsg += "Please enter your date of birth.<br>";
        result=false;
    }
    if (age >= 80) 
    { // Outside age ranges.
    errMsg +="You must be 80 or younger to apply for this job\n";
    result = false;
    }

    if (age <= 15) 
    { // Outside age ranges.
    errMsg += "You must be 15 or older to apply for this job\n";
    result = false;
    }

    var regex;
 //VIC = 3 OR 8, NSW = 1 OR 2 ,QLD = 4 OR 9 ,NT = 0 ,WA = 6 ,SA=5 ,TAS=7 ,ACT= 0.
 switch (state) {
    case "Please Select":
        return false;
    case "VIC":
        regex = new RegExp(/(3|8)\d+/);
        break;
     case "NSW":
        regex = new RegExp(/(1|2)\d+/);
        break;
     case "QLD":
        regex = new RegExp(/(4|9)\d+/);
        break;
     case "NT":
        regex = new RegExp(/0\d+/);
        break;
     case "WA":
        regex = new RegExp(/6\d+/);
        break;
     case "SA":
        regex = new RegExp(/5\d+/);
        break;
     case "TAS":
        regex = new RegExp(/7\d+/);
        break;
     case "ACT":
        regex = new RegExp(/0\d+/);
        break;
 }
 if(!postcode.match(regex)){
   errMsg += "State and postcode do not match\n";
   result = false;
 }
    if (other && document.getElementById("otherText").value.trim().length===0) 
    {
    errMsg += "You have selected other skills, you must enter one other skill in the text box\n";
    result = false;
    }
    //  more validation here   

    if (errMsg!="") 
        document.getElementById("err").innerHTML=errMsg;
    else {    // no error, save data to storage
        setDetails(fName,lName,dob,gender,street_address,town,state,postcode,phone,other,otherText);
    }
    return result;  
}
//*********************  init  ******************

function init() {
    if (document.getElementById("applyPage")!=null) {  // apply page init
        getJobRef();
        getDetails();
        document.getElementById("applyForm").onsubmit = validate;

    }
    else if (document.getElementById("positionPage")!=null) { // position page init

        var applylinks=document.getElementsByClassName("applylink");  // array
        for (var i=0; i<applylinks.length; i++)
            applylinks[i].onclick = function () { setJobRef(this.id); }
    }
}
window.onload = init;  


***HTML****


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="description" content="Student personal detail" />
  <meta name="keywords" content="Peronal Details of volunteer or student," />
  <meta name="author" content="Name student "  />

<link rel="stylesheet" type="text/css" href="styles/style.css" media="screen" />
<script src="my.js"></script>
<title>Apply to Voulnteer</title>

</head>

<body id="applyPage">
    <div id="leftsidebar">
       <!-- menu -->
    <header id="header">
        <h1>Imagine a world free from Cancer. Help make it a reality.</h1>
        <div id="menu">
         <ul>

            <li><a href="index.html">Home</a></li>
            <li><a href="position.html">Positions</a></li>
            <li><a href="apply.html">Apply Now</a></li>
            <li><a href="detail.html">Details</a></li>
            <li><a href="enhancements.html">Enhancements</a></li>
        </ul>
        </div>
    </header>
     <!-- menu end -->


<!-- right hand side content  -->

<aside class="rightnews">
    <span class="style3">Current Happenings</span><br />
    <img src="images/bullet.gif" alt="blue" width="19" height="16" /><br /> <br />  
    <a href=""><img src="images/cancer_awareness_month.jpeg" alt="cancer_awareness_month" width="130" height="95" /></a><br /><br />
    <a href=""><img src="images/breast_cancer.png" alt="breast cancer" width="130" height="93" /></a><br /><br />
    <a href=""><img src="images/month.jpeg" alt="awareness_month" width="130" height="99" /></a>
    <br />
</aside> 

<!-- right hand side content end  -->


<!-- left hand side content  -->

<aside id="f">
    <h2 >About Volunteering:</h2>

    <div class="leftnews">

    <img src="images/Vol3.png" alt="blue" style="width: 140px;height: 100px;"><br />
       As an Melbourne Red Cross volunteer you can honor a survivor or a loved one lost to cancer, help save lives of people in your local community, and around the world. It only takes a little time to do a lot of good. Discover how rewarding it is to be a volunteer.
        <br />
      <br />
    </div>
</aside>

<!-- left hand side content end -->


<!-- center side content  -->


<div id="content"><br/><br/>
  <h2 class="style7">Apply Now</h2> 
  <div class="style3">
     <form id="applyForm" method="post" action="https://mercury.swin.edu.au/it000000/formtest.php">
    <p id="err"></p>
    <p><label for = "jobRef">Job Reference Number: </label>
    <input  name= "jobRef" id="jobRef"  readonly/></p>

    <p><label for = "fName">First Name: </label>
    <input  name= "fName" id="fName" /></p>

    <p><label for = "lName">Last Name: </label>
    <input  name= "lName" id="lName" /></p>

    <p><label for="dob">*Date of Birth:</label>
            <input type="text" name="dob" id="dob" placeholder="dd/mm/yyyy" pattern="\d{1,2}/\d{1,2}/\d{4}" maxlength="10" size="10"/></p>

    <p id="err"></p>
    <fieldset>
      <legend>Gender:</legend>
      <input type = "radio" name = "gender" id="gender" value = "male"> Male
            <input type = "radio" name = "gender" id="gender" value = "female"> Female
        </fieldset>
        <br>
          <label for="street"> Street Address:</label><br>

         <input type="text" name="street_address"  id="street_address" required pattern="[A-Za-z]{1,40}">
          <br>
           <label for="town"> Suburb/Town </label><br>

          <input type="text" name="town" id="town" required pattern="[A-Za-z]{1,40}">
    <p><label for="state">*State:</label>
            <select name="state" id="state" required="required">
            <option value="">Please Select</option>         
            <option value="WIC">WIC</option>
                     <option value="NSW">NSW</option>
                     <option value="QLD">QLD</option>
                     <option value="NT">NT</option>
                     <option value="WA">WA</option>
                     <option value="SA">SA</option>
                     <option value="TAS">TAS</option>
                     <option value="ACT">ACT</option>
          </select>
    <p id="err"></p>
        </p>

          <p><label for="postcode">*Postcode:</label>
            <input type="text" name="postcode" id="postcode" minlength="4" maxlength="4" size="10" pattern="^[0-9]{4}$" required="required" />

    </p>
            <label for="phone"> Phone Number </label><br>
        <input type="tel" name="phone" maxlength="12" pattern="[0-9]{8,12}" id="phone" />
          <br>

            <p>Skill list:</p>
          <p><label for="Dancing">Dancing</label>
            <input type="checkbox" id="Dancing" name="skills[]" checked="checked" value="Dancing" /></p>
          <p><label for="Singing">Singing</label>
            <input type="checkbox" id="Singing" name="skills[]" value="Singing" /></p>


          <p><label for="other">Other Skills:</label>
            <input type="checkbox" id="other" name="skills" /></p>
          <textarea id="otherText" name="other" rows="8" cols="70" placeholder="Please write any other skills you may have here..."></textarea>

    <p><input type= "submit" value="Apply"/>
    <input type= "reset" value="Reset"/></p>

  </form>
    </div>
  <br>

</div>

<!-- right hand side content  -->

<!-- Footer  -->

<div id="footer">Copyright © 2019 Melbourne Red Cross Society</div>


<!--footer end  -->

</div>
</body>
</html>

如果您指的是“dob”字段,我个人不会尝试将其存储为日期 object。 根据我的经验,当您的用户与您的服务器处于不同的时区时,这可能会导致问题。 人们没有输入他们出生时间的时间戳,他们输入的是日历日。 所以即使我在我所在的时区是 1 月 1 日出生,而当时在你所在的时区是 12 月 31 日,你也不会说我的生日是 12 月 31 日。 您真正关心的是日、月和年。

另请注意,将 session 存储属性存储在列表中会更干净,然后像这样遍历列表:

function getDetails(){
    if (typeof(Storage)==="undefined"){
        return; // return early to avoid code clutter
    }

    let properties = ['fName', 'lName', 'dob', 'blah', 'blah', 'blah'];

    properties.forEach(p => {
        if (sessionStorage.getItem(p) !== null){   
            document.getElementById(p).value = sessionStorage.getItem(p);   
        }
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM