我的JS以前工作过,现在它没有

时间:2018-01-02 10:52:50

标签: javascript html

我想制作一份沟通表格,然后我就会复制粘贴以前工作的代码。我对代码所做的唯一更改是文本部分和CSS。所有名称和ID都相同,包括表格。正如我之前所说,字面意思是复制粘贴。我检查了控制台选项卡,没有任何错误。在这一点上,我很困惑。任何帮助表示赞赏。

代码:

<DOCTYPE html>
<html>
<head>
<link REL="STYLESHEET" TYPE="TEXT/CSS" HREF="STYLES.css">
<title>ΣΕΛΙΔΑ ΕΠΙΚΟΙΝΩΝΙΑΣ</title>
</head>
<body>
<form name="CForm" id="CForm" method="post">
<h3>ΦΟΡΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ</h3>


  <form name="myForm" id="form1"  onsubmit="return validateForm()" method="post">
    <label for="fname">ΟΝΟΜΑ ΚΑΙ ΕΠΩΝΥΜΟ </label>
    <input type="text" id="fname" name="fname" placeholder="Ονομα&Επωνυμο" class="otherCFcss">

    <label for="tel">ΤΗΛΕΦΩΝΟ</label>
    <input type="text" id="tel" name="tel" placeholder="Τηλεφωνο.." class="otherCFcss">

    <label for="lname">Email</label>
    <input type="email" id="email" name="email" placeholder="something@something.com"><br>

    <label for="subject">ΘΕΜΑ</label>
    <textarea id="message" name="message" placeholder="Γραψε κατι.." style="height:200px" class="otherCFcss"></textarea>

   <input type="submit" id="submitbutton" value="ΑΠΟΣΤΟΛΗ">
   <input type="reset" id="resetbutton" value="ΑΚΥΡΩΣΗ">
  </form>


</body>
</html>
<script>
    var a = sessionStorage.getItem("a");
    var b = sessionStorage.getItem("b");
    var c = sessionStorage.getItem("c");
    var d = sessionStorage.getItem("d");
    document.getElementById("fname").value= a;
    document.getElementById("tel").value= b;
    document.getElementById("email").value= c;
    document.getElementById("message").value= d;
    function send() {
        window.location.href = "mailto:dimtrispap1999@gmail.com?subject=Αυτόματο μήνυμα &body="+"Όνοματεπωνυμο:  "+ a +"%0A"+"Τηλέφωνο:"+"  "+ b +"%0A"+"Αίτημα,ερωτημα:  "+d;
    }

    function validateForm() {
        var x = document.forms["myForm"]["fname"].value;
        var y = document.forms["myForm"]["tel"].value;
        var z = document.forms["myForm"]["email"].value;
        var e = document.forms["myForm"]["message"].value;
        if (x == "" || y == "" || z == "" || e == ""){
            alert("Fill in the blanks");
        } else {
            var confirmwindow = window.open("", "_black", "width=560,height=190");
            confirmwindow.document.writeln("<h3>Σιγουρα θελετε να στειλετε την παρακατω φορμα?</h3>");
            confirmwindow.document.write("<b>Name*: </b>" + x + "<br>");
            confirmwindow.document.writeln("<b>Τηλεφωνο*: </b>" + y + "<br>");
            confirmwindow.document.writeln("<b>Email*: </b>" + z + "<br>");
            confirmwindow.document.writeln("<b>Message*: </b><br>" + e + "<br><br>");
            confirmwindow.document.write("<input type='submit' onclick='opener.send()' id='submitbutton' value='ΑΠΟΣΤΟΛΗ'>"+ " ");
            confirmwindow.document.writeln("<input type='button' onclick='window.close();' id='resetbutton' value='cancel'>");
        }
        return false;
    }
</script>

我还尝试在前一个代码和当前代码中添加函数外的变量。像var x=document.forms["myForm"]["fname"].value;这样的东西。在前面的代码(工作代码)中没有错误。 在当前的一个中,我从控制台得到了这个错误:

  

未捕获的TypeError:无法读取属性&#39; fname&#39;未定义的   elidaepikoinwnias.html:35

第35行是我添加变量的行。一旦删除它,错误就消失了,但JS代码仍然没有用。

1 个答案:

答案 0 :(得分:1)

看起来你有一个冗余且未封闭的表格 - cForm

删除此行

<form name="CForm" id="CForm" method="post">

您不应该嵌套表单check this