0
votes

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>
1
Please show the HTML too... (3 weeks is a heck of a long time...) - ppeterka
Please provide us a link to a jsfiddle example of your code so that we can help you out! - Pilgerstorfer Franz
What does not work about it? What exactly is wrong? - epascarello
This question isn't very helpful to us. Have you ruled out any possible problems? Were you able to narrow it down to any category, however broad? What have you done so far? - benekastah
It wont except my postcode in lower or uppercase letters. It says the address has to be alphanumeric and it won't except the quantity - user2073133

1 Answers

0
votes

Modify these:

Script

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>