0

I have tried to create a javascript form and I can't get it to work. The errors coming up are

  • Postcode should be in letters and numbers:
  • Address should be alphanumeric:
  • Please limit each magazine to 500 copies or less

    function display() { var totprice; var fname, lname, fullname, addr, postocde, email, telephone, lstitem, quantity, gender; var prditem1, prditem2, prditem3, summer2012, autumn2012, winter2012, totqty; var orddate; fname = document.form1.fname.value; lname = document.form1.lname.value; //fullname = fname + " " + lname; gender = document.form1.gender.value; addr = document.form1.address.value; postcode = document.form1.address.value; email = document.form1.email.value; telephone = document.form1.telephone.value; prditem1 = document.form1.summer.value; prditem2 = document.form1.autumn.value; prditem3 = document.form1.winter.value; summer2012 = parseInt(document.form1.summer2012.value); autumn2012 = parseInt(document.form1.autumn2012.value); winter2012 = parseInt(document.form1.winter2012.value); totqty = summer2012 + autumn2012 + winter2012; orddate = new Date(); dispdate = orddate.getMonth() + 1 + "-" + orddate.getDate() + "-" + orddate.getYear(); var alertmsg = ''; var alphabetic = /^[a-zàâçéèêëîïôûùüÿñ-]*$/i var alphanumeric = /^[a-zA-Z0-9/./,/-/\n]+$/; var addrtxt = addr.replace(/(\x0a\x0d|\x0d\x0a)/g, "\n"); var chkpostcode = /^((GIR 0AA)|((([A-PR-UWYZ][A-HK-Y]?[0-9][0-9]?)|(([A-PR-UWYZ][0-9] [A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRV-Y]))) [0-9][ABD-HJLNP-UW-Z]{2}))$/ var chktelephone = /^0\d{9,10}$/ var chkEmail = /^.+@.+..+$/ var chkquantity = /^([1-9]?\d|[1-4]\d{2}|500)$/ if (chkEmail.test(email) == false) { alertmsg = alertmsg + "Please enter a valid email." + "\n"; } if ((alphabetic.test(fname) == false) || (alphabetic.test(lname) == false)) { alertmsg = alertmsg + "Name should be in alphabets:" + "\n"; } if (chktelephone.test(telephone) == false) { alertmsg = alertmsg + "Telephone should be in digits:" + "\n"; } if (chkpostcode.test(postcode) == false) { alertmsg = alertmsg + "Postcode should be in letters and numbers:" + "\n"; } if (alphanumeric.test(addrtxt) == false) { alertmsg = alertmsg + "Address should be alphanumeric:" + "\n"; } var gender = document.form1.gender[0].checked; var gender1 = document.form1.gender[1].checked; if (!gender && !gender1) { alertmsg = alertmsg + "please select your gender\n" } if (((document.form1.summer.checked) && (summer2012 <= 0)) || ((document.form1.autumn.checked) && (autumn2012 <= 0)) || ((document.form1.winter.checked) && (winter2012 <= 0))) { alertmsg = alertmsg + "Please enter Quantity" + "\n"; } else if (((!document.form1.summer.checked) && (summer2012 > 0)) || ((!document.form1.autumn.checked) && (autumn2012 > 0)) || ((!document.form1.winter.checked) && (winter2012 > 0))) { alertmsg = alertmsg + "Please choose Product" + "\n"; } var f = document.form1; if (!f.summer.checked && !f.autumn.checked && !f.winter.checked) { alertmsg = alertmsg + "Please choose at least one edition of the magazine" + "\n"; } if (chkquantity.test(quantity) <= 500) { alertmsg = alertmsg + "Please limit each magazine to 500 copies or less:" + "\n"; } if (alertmsg != "") { alertmsg = "Please enter the following values \n" + alertmsg; alert(alertmsg); } else { fullname = formatName(fname, lname); totprice = totalprice(); } //alert("Thanks for submitting the details"); function totalprice() { var totprice = 0; var price = new Array(); price[0] = 20.00; price[1] = 20.00; price[2] = 20.00; var quantity = new Array(); quantity[0] = parseInt(document.form1.summer2012.value); quantity[1] = parseInt(document.form1.autumn2012.value); quantity[2] = parseInt(document.form1.winter2012.value); for (i = 0; i < 3; i++) { totprice = totprice + quantity[i] * price[i]; } return (totprice); } }

Can anyone suggest what I've done wrong? any help would really be appreciated. thanks

here is the html -

<form name="form1" method="post">
    <fieldset id="fieldset">
       <legend id="legend">Order the latest Saraysounds Magazine</legend>

<table width="500" border=0 align="left" cellpadding="4" cellspacing="4">


        <tr>
          <td colspan="2"><div align="left">First
              Name</div></td>
          <td colspan="2"><input type="text" name="fname"/>
          </td>
        </tr>
        <tr>
          <td colspan="2"><div align="left">Second
              Name</div></td>
          <td colspan="2">
            <input type="text" name="lname"/>
         </td>
        </tr>

        <tr>
          <td colspan="2"><div align="left">Gender</div></td>
          <td colspan="2">
            <input type="radio" name="gender" value="M"/>
           Male 
            <input type="radio" name="gender" value="F"/>
            Female </td>
        </tr>

        <tr>
          <td colspan="2"><div align="left">Address</div></td>
          <td colspan="2"><textarea name="address" cols="30" rows=5 col=40 wrap=soft>     </textarea>
          </td>
          </tr>
          <tr>
           <td colspan="2"><div align="left">Postcode</div></td>
          <td colspan="2">  <input type="text" name="postcode"/>
      </td>
    </tr>

       <tr>
      <td colspan="2"><div align="left">Email</div></td>
      <td colspan="2">
        <input type="text" name="email"/>
      </td>
    </tr>

     <tr>
      <td colspan="2"><div align="left">Telephone</div></td>
      <td colspan="2">
        <input type="text" name="telephone"/>
      </td>
    </tr>


    <tr>
             <td colspan="4"><center>
               <strong>Select
               Magazine</strong>
             </center></td>
             </tr>
             <tr>
             <td width="123"><center>
               <strong>Product Name</strong>
             </center></td>
             <td width="30" ><center>
               <strong></strong>
             </center></td>
               <td ><center>
               <strong>Price</strong>
             </center></td>
               <td>
              <strong>Quantity</strong>
             </td>
             </tr>
           <tr>
             <td  align="right">Summer 2012
               </td>
             <td>
               <input type="checkbox" name="summer" value="Summer 2012"/>
           </td>
             <td align="center" width="69"><div align="right">20.00 </div></td>
             <td width="216"><input name="summer2012" type="text" size="5" value="0"/></td>
           </tr>
         <tr>
             <td align="right">Autumn 2012
             </td>
             <td>
               <input type="checkbox" name="autumn" value="Autumn 2012"/>
           </td>
             <td align="center" width="69"><div align="right">20.00 </div></td>
             <td><input name="autumn2012" type="text" size="5" value="0"/></td>
         </tr>
         <tr>
             <td align="right">Winter 2012
           </td>
             <td>
               <input type="checkbox" name="winter" value="Winter 2012"/>
          </td>
             <td align="center"  width="69"><div align="right">20.00</div></td>
             <td><input name="winter2012" type="text" size="5" value="0"/></td>
         </tr>

           <tr>
             <td align="center" colspan="4"><input name="button" type="button" onClick="javascript:display()" value="Submit"/>
              <input type="reset" value="Clear Form"/>
             </td>
           </tr>
      </table>

 </fieldset>
</form>
4

1 に答える 1

0

これらを変更します。

脚本

var alphanumeric = /^[a-zA-Z0-9\.\,\-\n]+$/;

var quantity = new Array();
 quantity[0] = parseInt(document.form1.summer2012.value);
 quantity[1] = parseInt(document.form1.autumn2012.value);
 quantity[2] = parseInt(document.form1.winter2012.value);
 if (quantity[0] > 500 || quantity[1] > 500 || quantity[2] > 500) {
     alertmsg = alertmsg + "Please limit each magazine to 500 copies or less:" + "\n";
 }

HTML

<td colspan="2"><textarea name="address" cols="30" rows=5 col=40 wrap=soft></textarea>
于 2013-02-26T19:48:56.627 に答える