1

非表示のdivを表示する前に、JavaScriptでフォーム内のすべてのデータを検証しようとしています。最初の関数を2番目の関数で呼び出すのが終わったら、どこで間違っているのかを一生理解することはできません。

すべてのHTML、CSS、JavaScriptは以下のとおりです。

        <!DOCTYPE html>
    <html>
    <head>
    <title>Sign Up</title>
    <style text/css>
    body
    {
        background: url(http://www.catalink.com/images/christmas-1211.jpg);
    }
    .outer
    {
        margin: auto;
        width: 910px;
        position: relative
    }
    .inner
    {
        padding-left: 10px;
        padding-top: 10px;
        background: white;
        width: 900px;
        margin: auto;
        height: 410px;
    }
    .image
    {
        float: left;
    }
    .catname
    {
        margin-right: 180px;
        margin-left: 245px;
        background: #cae1ff;
        text-align: center;
        font-family: Verdana, Geneva, sans-serif;
        font-size: 11px;
        line-height: 18px;
        height: 20px;
        border: solid;
        border-width: thin;
        border-color: #828282;
    }
    .catcopy
    {
        margin-right: 180px;
        padding-left: 28%;
        font-family: Verdana, Geneva, sans-serif;
        font-size: 11px;
        line-height: 18px;
    }
    .banner
    {
        margin-left: 250px;
        margin-right: 180px;
        padding-top: 25px;
    }
    .singlelineform
    {
        background: #DDD;
        width: 150px;
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        border: solid;
        border-width: thin;
        border-radius: 12px;
        padding: 5px;
        position: absolute;
        right: 0;
        top: 0;
    }
    .ntitle
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .fname
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .day
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .month
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .year
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .email
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .hnumber
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .pcode
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    .button
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
    }
    button, input, select, textarea {
      font-family: Verdana, Geneva, sans-serif;
      font-size: 12px;
    }
    input
    {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      -khtml-box-sizing: border-box;
      box-sizing: border-box;
      -webkit-border-radius: 12px;
      -moz-border-radius: 12px;
      -khtml-border-radius: 12px;
      border-radius: 12px;
    }
    select
    {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      -khtml-box-sizing: border-box;
      box-sizing: border-box;
      -webkit-border-radius: 12px;
      -moz-border-radius: 12px;
      -khtml-border-radius: 12px;
      border-radius: 12px;
    }
    button
    {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      -khtml-box-sizing: border-box;
      box-sizing: border-box;
      -webkit-border-radius: 12px;
      -moz-border-radius: 12px;
      -khtml-border-radius: 12px;
      border-radius: 12px;
    }
    .newformouter
    {
        margin: auto;
        width: 910px;
        position: relative;
        background: white;
    }
    #newinner
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        border: solid;
        border-width: thin;
        border-radius: 12px;
        padding-left: 5px;
        padding-top: 5px;
        background: #DDD;
        width: 600px;
        margin: auto;
        height: 200px;
    }
    .lnewform
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        width: 50%;
        left: 0;
        top: 0;
    }
    .rnewform
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        width: 296px;
        position: absolute;
        right: 159px;
        top: 0;
        height: 94px;
    }
    .address1
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
        float: right;
    }
    .address2
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
        float: right;
    }
    .county
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
        float: right;
    }
    .pcodenform
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
        float: right;
    }
    .telephone
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
        float: right;
    }
    .password
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
        float: right;
    }
    .privacydiv
    {
        font-family: Verdana, Geneva, sans-serif;
        font-size: 12px;
        line-height: 18px;
        padding: 2px;
        float: right;
        width: 50%
    }
    </style>
    <script type="text/javascript" language="javascript">
    function validateForm() {
        var fname = document.getElementById("fname");
        if (fname.value.length < 2) {
            alert ("Please enter your First name!");
            return false;
        }
        var lname = document.getElementById ("lname");
        if (lname.value.length < 3) {
            alert ("Please enter your Surname!");
            return false;
        }
        var address = document.getElementById ("address");
        if (address.value.length < 1) {
            alert ("Please enter your House Number or Name!");
            return false;
        }
        var postcode = document.getElementById ("postcode");
        if (postcode.value.length < 6) {
            alert ("Please enter your Post Code!");

        }
        var x=document.forms["firstform"]["email"].value;
        var atpos=x.indexOf("@");
        var dotpos=x.lastIndexOf(".");
        if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
        {
            alert("Please enter a valid e-mail address");
            return false;
        }
    }
    function show()
    {
        document.getElementById("newinner").style.display = "block";
    }
    </script>
    </head>

    <body>
    <div class="outer">
    <div class="inner">
    <div class="image"><img src="http://www.catalink.com/images/cat/extralarge/burton-1208d.jpg" /></div>
    <div class="catname"><b>Burton eNewsletter</b></div>
    <div class="catcopy"><p><b>Outfitters of the Modern British Man...</b></p><p><b>Burton believes in combining accessible style with great value.</b> They want fashion to be easy and comfortable as well as stylish. They embrace their British tailoring roots but they also understand the importance of kicking back in a great pair of jeans and a hoodie. They love a good laugh, but they also know the importance of <b>"looking the business"</b></p></div>
    <div class="banner"><a href="http://www.burton.co.uk/webapp/wcs/stores/servlet/TopCategoriesDisplay?storeId=12551&catalogId=33052" target="blank"><img src="http://www.catalink.com/images/450ban/burton-450ban-1208b.jpg" border="0" /></a></div>
    <div class="singlelineform">
    <form name="firstform" method="post">
    <div class="formtitle"><b>To request this brochure please fill out the form below.</b></div>
    <div class="ntitle"><b>First Name*:</b><br><select>
      <option value="title">Title</option>
      <option value="mr">Mr</option>
      <option value="mrs">Mrs</option>
      <option value="miss">Miss</option>
      <option value="ms">Ms</option>
    </select>
    </div>
    <div class="fname">
    <input type="text" name="fname" id="fname" /></div>
    <div class="lname"><b>Last Name:*</b><input type="lastname" name="lname" id="lname" /></div>
    <div class="day"><b>Date of Birth*:</b>
    <select name="date" form="dateform">
    <option value="day">Day</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    </select>
    </div>
    <div class="month">
    <select form="monthhform">
    <option value="month">Month</option>
    <option value="january">January</option>
    <option value="february">February</option>
    <option value="march">March</option>
    <option value="april">April</option>
    <option value="may">May</option>
    <option value="june">June</option>
    <option value="july">July</option>
    <option value="august">August</option>
    <option value="september">September</option>
    <option value="october">October</option>
    <option value="november">November</option>
    <option value="december">December</option>
    </select>
    </div>
    <div class="year">
    <select form="yearform">
    <option value="year">Year</option>
    <option value="1994">1994</option>
    <option value="1993">1993</option>
    <option value="1992">1992</option>
    <option value="1991">1991</option>
    <option value="1990">1990</option>
    <option value="1989">1989</option>
    <option value="1988">1988</option>
    <option value="1987">1987</option>
    <option value="1986">1986</option>
    <option value="1985">1985</option>
    <option value="1984">1984</option>
    <option value="1983">1983</option>
    <option value="1982">1982</option>
    <option value="1981">1981</option>
    <option value="1980">1980</option>
    <option value="1979">1979</option>
    <option value="1978">1978</option>
    <option value="1977">1977</option>
    <option value="1976">1976</option>
    <option value="1975">1975</option>
    <option value="1974">1974</option>
    <option value="1973">1973</option>
    <option value="1972">1972</option>
    <option value="1971">1971</option>
    <option value="1970">1970</option>
    <option value="1969">1969</option>
    <option value="1968">1968</option>
    <option value="1967">1967</option>
    <option value="1966">1966</option>
    <option value="1965">1965</option>
    <option value="1964">1964</option>
    <option value="1963">1963</option>
    <option value="1962">1962</option>
    <option value="1961">1961</option>
    <option value="1960">1960</option>
    <option value="1959">1959</option>
    <option value="1958">1958</option>
    <option value="1957">1957</option>
    <option value="1956">1956</option>
    <option value="1955">1955</option>
    <option value="1954">1954</option>
    <option value="1953">1953</option>
    <option value="1952">1952</option>
    <option value="1951">1951</option>
    <option value="1950">1950</option>
    <option value="1949">1949</option>
    <option value="1948">1948</option>
    <option value="1947">1947</option>
    <option value="1946">1946</option>
    <option value="1945">1945</option>
    <option value="1944">1944</option>
    <option value="1943">1943</option>
    <option value="1942">1942</option>
    <option value="1941">1941</option>
    <option value="1940">1940</option>
    <option value="1939">1939</option>
    <option value="1938">1938</option>
    <option value="1937">1937</option>
    <option value="1936">1936</option>
    <option value="1935">1935</option>
    <option value="1934">1934</option>
    <option value="1933">1933</option>
    <option value="1932">1932</option>
    <option value="1931">1931</option>
    <option value="1930">1930</option>
    <option value="1929">1929</option>
    <option value="1928">1928</option>
    <option value="1927">1927</option>
    <option value="1926">1926</option>
    <option value="1925">1925</option>
    <option value="1924">1924</option>
    <option value="1923">1923</option>
    <option value="1922">1922</option>
    <option value="1921">1921</option>
    <option value="1920">1920</option>
    <option value="1919">1919</option>
    <option value="1918">1918</option>
    <option value="1917">1917</option>
    <option value="1916">1916</option>
    <option value="1915">1915</option>
    <option value="1914">1914</option>
    <option value="1913">1913</option>
    <option value="1912">1912</option>
    <option value="1911">1911</option>
    <option value="1910">1910</option>
    </select></div>
    <div class="email"><b>Email:*</b><input type="email" name="email" /></div>
    <div class="hnumber"><b>House Number*:</b><input type="text" name="address" id="address" /></div>
    <div class="pcode"><b>Post Code:*</b><input type="pcode" name="postcode" id="postcode" /></div>
    <div class="button"><input type="button" value="Find Address" name="findaddress" onclick="return validateForm();" /></div>
    </form>
    </div>
    </div>
    </div>
    <div class="newformouter">
    <div id="newinner" style="display:none;">
    <form>
    <div class="lnewform">
    <div class="address1"><b>House No &amp; Street:</b>&nbsp;<input type="text" name="addline1" /></div>
    <div class="address2"><b>Address 2:</b>&nbsp;<input type="text" name="addline2" /></div>
    <div class="county"><b>County:</b>&nbsp;<input type="text" name="county" /></div>
    <div class="pcodenform"><b>Post Code:</b>&nbsp;<input type="text" name="post_code" /></div>
    </div>
    <div class="rnewform">
    <div class="telephone"><b>Telephone/Mobile:</b>&nbsp;<input type="text" name="telephone" /></div>
    <div class="password"><b>Password:</b>&nbsp;<input type="password" name="password" /></div>
    <div class="password"><b>Confirm Password:</b>&nbsp;<input type="password" name="cpassword" /></div>
    </div>
    <div class="privacydiv">
    <div class="privacy">Please ensure you have read and understood our <a href="http://www.catalink.com/privacy_policy.php">Privacy Policy</a> before pressing the Submit button below.</div>
    <div class="button"><input type="button" value="Confirm" onClick="" /></div>
    </div>
    </form>
    </div>
    </div>
    </body>
    </html>
4

2 に答える 2

1

show();最初の関数に追加して終了するだけです。

または、さらに良いことに、その1行を次の行showの最後に移動しvalidateFormます。

function validateForm() {
    var fname = document.getElementById("fname");
    if (fname.value.length < 2) {
        alert("Please enter your First name!");
        return false;
        //ETC, cut to reduce sample length.
    }
    document.getElementById("newinner").style.display = "block";
}
于 2012-11-22T15:07:29.343 に答える
1

これを試しましたか

function validateForm() {
        var fname = document.getElementById("fname");
         if (fname.value.length < 2) {
          alert ("Please enter your First name!");
          return false;
    }
        var lname = document.getElementById ("lname");
          if (lname.value.length < 3) {
           alert ("Please enter your Surname!");
           return false;
    }
    var address = document.getElementById ("address");
          if (address.value.length < 1) {
           alert ("Please enter your House Number or Name!");
           return false;
    }
    var postcode = document.getElementById ("postcode");
          if (postcode.value.length < 6) {
           alert ("Please enter your Post Code!");

    }
    var x=document.forms["firstform"]["email"].value;
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
      {
      alert("Please enter a valid e-mail address");
      return false;
      }

     show();

    }

最後にこのようなショーを呼び出す必要があります

于 2012-11-22T15:05:46.657 に答える