JavaScript - Count Fields In Form [very Urgent]
Hi all!
I have a form which has some checkboxes and the name of every checkbox is email_(a counting number) . Lets say I have no access to the counting number because it is changed every time the page reloads. How can i create a script to return how many email_ checkboxes is in the form? Code: <script> // here i want a script to count how many checkboxes is in the form. // </script> <form> <script> counter = 2 // I dont have access to this number because it is changing every time I reload the page. for(i=0;i<counter;i++) { test.innerHTML += "<input type='checkbox' value='' name='email_"+i+"'>"; } </script> <div id="test"></div> </form> please help! Similar TutorialsI wish to know how I can count how many lines there are by searching the innerHTML of a div can anyone suggest how this can be done? also when the new line is added in my code it clears the content of all the existing fields if there was anything in them before the add link was clicked Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"><!-- function addmore() { // count existing boxes to find out next number to use. // ? document.getElementById('namesdiv').innerHTML += '<textarea name="name_added" cols="30" rows="2"></textarea><br>'; document.getElementById('addressesdiv').innerHTML += '<textarea name="address_added" cols="30" rows="2"></textarea><br>'; document.getElementById('mobilesdiv').innerHTML += '<textarea name="mobile_added" cols="30" rows="2"></textarea><br>'; } --></script> </head> <body> <form> <div style="width: 850px;"> <div id="namesdiv" style="float: left; padding-right: 10px;">Client's Names<br> <textarea name="name1" cols="30" rows="2"></textarea><br> <textarea name="name2" cols="30" rows="2"></textarea><br> <textarea name="name3" cols="30" rows="2"></textarea><br> <textarea name="name4" cols="30" rows="2"></textarea><br> <textarea name="name5" cols="30" rows="2"></textarea><br> </div> <div id="addressesdiv" style="float: left; padding-right: 10px;">Client's Addresses<br> <textarea name="address1" cols="30" rows="2"></textarea><br> <textarea name="address2" cols="30" rows="2"></textarea><br> <textarea name="address3" cols="30" rows="2"></textarea><br> <textarea name="address4" cols="30" rows="2"></textarea><br> <textarea name="address5" cols="30" rows="2"></textarea><br> </div> <div id="mobilesdiv" style="float: left;">Client's Mobile numbers<br> <textarea name="mobile1" cols="30" rows="2"></textarea><br> <textarea name="mobile2" cols="30" rows="2"></textarea><br> <textarea name="mobile3" cols="30" rows="2"></textarea><br> <textarea name="mobile4" cols="30" rows="2"></textarea><br> <textarea name="mobile5" cols="30" rows="2"></textarea><br> </div> </div> <br style="clear: both;"> <a href="" onClick="javascript:addmore(); return false;" >Add more</a> </form> </body> </html> Hi, Can anyone spot a problem with the below code: PHP Code: <script type="text/javascript" language="javascript"> function CheckForm (f) {var dp; //pass in the form if (f.removethis && f.removethis.value) { //there is something to remove var rem = f.removethis.value; f.removethis.value=''; //reset this element var cf = confirm ('Are you sure you wish to remove this ' + rem + '?'); if (cf && (dp=document.getElementById('removebox'))) dp.style.visibility='visible'; return cf; } else { //this is a check form rather than a removal var s="" var d="" if(f['title']) {var sl=f['title']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'title, ';}} if(f['firstname'] && !f['firstname'].value) {s += 'first name, ';} if(f['lastname'] && !f['lastname'].value) {s += 'surname, ';} if(f['jobtitle'] && !f['jobtitle'].value) {s += 'job title, ';} if(f['company'] && !f['company'].value) {s += 'organisation, ';} if(f['address1'] && !f['address1'].value) {s += 'address, ';} if(f['city'] && !f['city'].value) {s += 'town, ';} if(f['postcode'] && !f['postcode'].value) {s += 'postcode, ';} if(f['country']) {var sl=f['country']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'country, ';}} if(f['tel'] && !f['tel'].value) {s += 'telephone, ';} if(f['email'] && !f['email'].value) {s += 'email, ';} if(f['position']) {var sl=f['position']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'position, ';}} if(f['Make']) {var sl=f['Make']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'marketing source, ';}} if(f['marketingsource']) {var sl=f['marketingsource']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'marketing source details, ';}} if ((f['marketingsource'].value == "07 - Advert - Other") && (f['marketingsourceother'] && !f['marketingsourceother'].value)) {s += 'Marketing source other, ';} if ((f['marketingsource'].value == "15 - Direct mail - Other") && (f['marketingsourceother'] && !f['marketingsourceother'].value)) {s += 'Marketing source other, ';} if ((f['marketingsource'].value == "23 - General - other") && (f['marketingsourceother'] && !f['marketingsourceother'].value)) {s += 'Marketing source other, ';} if ((f['marketingsource'].value == "40 - Email - Other") && (f['marketingsourceother'] && !f['marketingsourceother'].value)) {s += 'Marketing source other, ';} if ((f['marketingsource'].value == "60 - Website - Other") && (f['marketingsourceother'] && !f['marketingsourceother'].value)) {s += 'Marketing source other, ';} if ((f['marketingsource'].value == "70 - Social media - Other") && (f['marketingsourceother'] && !f['marketingsourceother'].value)) {s += 'Marketing source other, ';} if(f['position']) {var sl=f['position']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'Position, ';}} if ((f['position'].value == "115 - Other (please specify)") && (f['positionother'] && !f['positionother'].value)) {s += 'Position other, ';} if ((f['interestsother'] && !f['interestsother'].value) && (f['interests[]'])) {var ch=0;for(var i=0;i<f.elements.length;i++){if(f.elements[i].name=='interests[]'&&f.elements[i].checked){ch++;}}if(ch==0) {s += 'main area(s) of interest, ';}} if(f['industry']) {var sl=f['industry']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'business sector, ';}} if ((f['industry'].value == "132 - Other (please specify)") && (f['industryother'] && !f['industryother'].value)) {s += 'business sector other, ';} if(f['budget']) {var sl=f['budget']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'training budget, ';}} if(f['employees']) {var sl=f['employees']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'number of employees, ';}} if(f['interested']) {var sl=f['interested']; var sls=0;if(sl.options[sl.selectedIndex].value) {sls++;}if(sls==0) {s += 'interested in exhibiting, ';}} var parts1 = GetNumber(f,"delegates_M1") + GetNumber(f,"delegates_M2"); var parts2 = GetNumber(f,"delegates_A1") + GetNumber(f,"delegates_A2"); var parts3 = GetNumber(f,"delegates_M3") + GetNumber(f,"delegates_M4"); var parts4 = GetNumber(f,"delegates_A4") + GetNumber(f,"delegates_A5"); //check if they've got the same number of seminars (added 23/8/2006 at Sarah's request) if (parts1 != parts2) {d += 'You must select the same number of seminars for the morning and afternoon on day 1. ';} if (parts3 != parts4) {d += 'You must select the same number of seminars for the morning and afternoon on day 2. ';} if (d) {alert (d);} else if (s) {alert ('Please fill in the ' + s + 'then resubmit.');} else if (dp=document.getElementById('phpaulsavebox')) dp.style.visibility='visible'; return d ? false : true; return s ? false : true; } //checking the form } //end of check form function </script> Currently if parts 1 or 2, or parts 3 or 4 don't match, the form works correctly. You receive the alert 'You must select the same number of seminars for the morning and afternoon on day X', and the form stops. However, if you select the same amount of numbers for this section of the form, but do not complete e.g. 'first name', you receive the alert 'Please fill in the first name then resubmit', but then when you 'OK' the alert the form submits anyway. Any help? I need to get this sorted this morning. Many thanks, Sam Hi, I have a working contact form with 3 of the fields requiring validation and they work well. I have added extra fields to the form (StatusClass, Project, CameFrom). These 3 fields return fine but I need to validated them. My problem is that the new fields don't show in the behaviours/validate panel even though they are within the form tag. Can anyone give me any help and advice as to how to accomplish this? Many thanks Code below.... Code: <script type="text/JavaScript"> <!-- function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_validateForm() { //v4.0 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } } if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue = (errors == ''); } //--> </script > Code: <form action="contact_us.asp" method="post" name="contact" target="_parent" class="contentText" id="contact" onsubmit="MM_validateForm('FullName','','R','Telephone','','RisNum','Email','','RisEmail');return document.MM_returnValue"> <table width="100%" border="0" cellspacing="5" cellpadding="0"> <tr> <td width="54%" class="subHeader">Full Name* </td> <td width="46%" class="subHeader"><input name="FullName" type="text" id="FullName" /></td> </tr> <tr> <td class="subHeader">Company Name </td> <td class="subHeader"><input name="CompanyName" type="text" id="CompanyName" /></td> </tr> <tr> <td class="subHeader">Address</td> <td class="subHeader"><input name="Address1" type="text" id="Address1" /></td> </tr> <tr> <td class="subHeader"> </td> <td class="subHeader"><input name="Address2" type="text" id="Address2" /></td> </tr> <tr> <td class="subHeader"> </td> <td class="subHeader"><input name="Address3" type="text" id="Address3" /></td> </tr> <tr> <td class="subHeader">Postcode</td> <td class="subHeader"><input name="Postcode" type="text" id="Postcode" /></td> </tr> <tr> <td class="subHeader">Telephone Number* </td> <td class="subHeader"><input name="Telephone" type="text" id="Telephone" /></td> </tr> <tr> <td class="subHeader">Mobile Number </td> <td class="subHeader"><input name="Mobile" type="text" id="Mobile" /></td> </tr> <tr> <td height="25" class="subHeader">Email Address* </td> <td class="subHeader"><input name="Email" type="text" id="Email" /></td> </tr> <tr> <td height="30" class="subHeader">Status*</td> <td class="subHeader"><select name="StatusClass" id="StatusClass"> <option selected="selected">Please Choose</option> <option>Architect</option> <option>Interior Designer</option> <option>Private Client</option> <option>Student</option> <option>Trade Enquiry</option> </select> </td> </tr> <tr> <td height="23" class="subHeader">Project*</td> <td class="subHeader"><select name="Project" size="1" id="Project"> <option selected="selected">Please Choose</option> <option>Planning Stages</option> <option>New Build</option> <option>Refurbishment</option> <option>Barn Conversion</option> <option>No project - information only</option> </select> </td> </tr> <tr> <td height="37" class="subHeader">How did you hear about us?*</td> <td class="subHeader"><select name="CameFrom" size="1" id="CameFrom"> <option selected="selected">Please Choose</option> <option>Web Search</option> <option>Grand Designs</option> <option>Living Etc</option> <option>Home Building & Renovation</option> <option>Architect</option> <option>Friend/Family</option> <option>Magazine/Editorial</option> <option>Newspaper Article</option> <option>Trade Show/Exhibition</option> <option>Other</option> </select></td> </tr> <tr> <td height="24" class="subHeader">Brochure Request </td> <td class="subHeader"><input name="Brochure" type="checkbox" id="Brochure" value="checkbox" /></td> </tr> <tr> <td class="subHeader">Message</td> <td class="subHeader"><span class="style4"> <textarea name="Message" id="Message"></textarea> </span></td> </tr> <tr> <td class="subHeader"> </td> <td class="subHeader"><input name="Submit" type="submit" value="Submit" /></td> </tr> <tr> <td colspan="2" class="subHeader"><em>* Required fields</em></td> </tr> </table> </form> Hi , I have 4 input form fields and when user enters data in any number of fields like he enter data in 2 fields and left 2 fields blank like(123, ,456, ,), i need to check on blur event so that it has to check for empty fields and once empty fields exits then it has to sort out all the data presented fields and then placed back to input fields like (456,123, , ,). i am new to java script and i have no idea how to implement this , please help me thanks. <input type="text" name="itemMod1_1" size="5" maxlength="5" class="mono" > <input type="text" name="itemMod2_1" size="5" maxlength="5" class="mono" > <input type="text" name="itemMod3_1" size="5" maxlength="5" class="mono" > <input type="text" name="itemMod4_1" size="5" maxlength="5" class="mono" > I am no javascript expert, very much a beginner. I am trying to incorporate some into a web-based form. The problem is the button I created to add extra fields does not work, and I can't find exactly where the problem is. I'm in need of some help from a javascript guru. Help me enjoy my Friday afternoon by solving this! The javascript is mostly borrowed and slightly altered, the "additem" I wrote myself so that is probably where the problem lies! Here is the html: Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/> <title></title> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/> <link rel="stylesheet" type="text/css" href="style.css"/> <script type="text/javascript"> function showAsset(id,str) { if (str=="") { document.getElementById("assetinfo"+id).innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("assetinfo"+id).innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getasset.php?q="+str,true); xmlhttp.send(); } var noFields = "5"; function additem() { var fieldrow = document.createElement('tr'); var fieldcolumn1 = document.createElement('td'); var fieldinput = document.createElement('input'); fieldinput.name = "asset"; fieldinput.onChange = "showAsset("+noFields+",this.value)"; var fieldcolumn2 = document.createElement('td'); fieldcolumn2.id = "assetinfo"+noFields; fieldcolumn1.appendChild(fieldinput); var fieldcolumns = fieldcolumn1 + fieldcolumn2; fieldrow.appendChild(fieldcolumns); var addbefore = document.getElementById('fieldend'); document.body.insertBefore(fieldrow, addbefore); noFields = noFields++; } </script> </head> <body> <form> <table> <tr> <td><input name="asset" onChange="showAsset(1,this.value)"></td> <td id="assetinfo1"></td> </tr> <tr> <td><input name="asset" onChange="showAsset(2,this.value)"></td> <td id="assetinfo2"></td> </tr> <tr> <td><input name="asset" onChange="showAsset(3,this.value)"></td> <td id="assetinfo3"></td> </tr> <tr> <td><input name="asset" onChange="showAsset(4,this.value)"></td> <td id="assetinfo4"></td> </tr> <tr> <td><input name="asset" onChange="showAsset(5,this.value)"></td> <td id="assetinfo5"></td> </tr> <tr id="fieldend"> <td><input id="addfield" type="button" value="add item" onClick="addfield()"></td> </tr> </table> </form> </body> </html> Here is the associated getasset.php: Code: <?php $q=$_GET["q"]; $con = mysql_connect('localhost', 'root', 'root'); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("assettracking", $con); $sql="SELECT * FROM assets WHERE assetID = '".$q."'"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { echo "<b>".$row['make'] ." ".$row['model'] ." - ".$row['serialnumber']."</b> | Status: ".$row['statusID']." | Comments: ".$row['comments']; } mysql_close($con); ?> Hi all I have a form with one or more DIV elements inside it. When I try to count form elements I get result=0? How is this possible? See the example: Code: <html> <head> <script language="javascript"> function Count() { alert(document.frm1.elements.length); for(i=0; i<document.frm1.elements.length; i++) { alert(document.frm1.elements[i].name); } } </script> </head> <body> <form id="frm1" name="frm1"> <div id="div1" name="div1">.</div> </form> <input type="button" onclick="Count();" /> </body> </html> If I put other element (textbox) inside the form, the count result is correct. Is DIV not an element?! How can I count one or more DIV and inner DIV's? Thanks for your help. Z. Hi, i have this code that generate 10 rows with form fields: Code: <form> <?php for($i=1;$i<=10;$i++) {?> <div id="rowz-rep"> <div class="row1"><?=$i?></div> <div class="row2a"><input name="title[]" type="text" class="fieldSubmit"/></div> <div class="row3a"><input name="url[]" type="text" class="fieldSubmit"/></div> <div class="row4a"><select name="type[]" class="dropSubmit"><? foreach($allowed_types as $at) { echo '<option value="'.$at.'">'.$at.'</option>'; }?></select></div> </div> <? }?> </form> I need that onclick with JS add 10 more rows so i get something like Code: <?php for($i=1;$i<=20;$i++) {?> Hi all, I'm new to here and JS but I have question for you! So I have this form with inputs that are considered arrays in my PHP code: Code: <input type="checkbox" name="1" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="2" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="3" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="4" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="5" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="6" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="7" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="8" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="9" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="10" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="11" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="12" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="13" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="14" /> <input name="ii[]" type="text"> <br /> <input type="checkbox" name="15" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="16" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="17" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="18" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="19" /> <input name="i[]" type="text"> <br /> <input type="checkbox" name="20" /> <input name="i[]" type="text"> <br /> I don't want to keep adding in new spots every time a user want to add a new field. I would like them to be able to press a button that will add another one of those fields and so on. I'm not sure how this can be achieved but that's why I am turning to you! Thanks! Hi guys, I created a form that contains about 10 form fields and would like to add the option to dynamically add more sets of those 10 fields if a user clicks a word or a button but I need help. I'm a beginner when it comes to JavaScript and would appreciate any help. This is what I need to generate dynamically. Can someone give me an idea of how to get started please? Code: <div id="dynamicInput"> <ul> <li>1</li> <li><input name='textfield1' type='text' size='10' /></li> <li><select name='commodity' width='100' style='width: 100px'> <option>Option 1</option> </select></li> <li><input name='textfield2' type='text' size='5' /></li> <li><input name='textfield3' type='text' size='10' /></li> <li><input name='textfield4' type='text' size='10' /></li> <li><input name='textfield5' type='text' size='10' /></li> <li><input name='textfield6' type='text' size='5' /></li> <li><input name='textfield7' type='text' size='5' /></li> <li><input name='textfield8' type='text' size='5' /></li> </ul> </div> Here's what I have so far in my validation part. However, I need help as to how to validate the following fields when the user clicks the submit button. -Radio Button *title (4 options) *member (3 options) *vegetarian (2 options) -Drop down lists *regstartdate (3 options) *regenddate (3 options) *confdinner (2 options) *paymethod (3 options) -UK Post Code (text box with maxlength=8) My current code shows 1 popup with all the error messages. Here's what I have so far: Redacted I'm trying to make a site where when you click the submit button it puts an asterisk next to all of the incomplete fields while also displaying an alert box. I'm having no luck with it so far since I don't know how to get a script to print something to a specific part of a page. Here is what the whole thing looks like so far. I tried using page-jumping but that didn't work: Code: <html> <head> <title>Sortomatic 5000 </title> <script type="text/javascript"> function Sort(form){ var fruits = [form.One.value, form.Two.value, form.Three.value]; if (form.One.value!=""&&form.Two.value!=""&&form.Three.value!=""){ document.writeln(fruits.sort()); } if(form.One.value=""){ alert("Please enter at least one character into all fields."); parent.location='#first'; document.writeln("*"); } if(form.Two.value=""){ alert("Please enter at least one character into all fields."); } else{ alert("Please enter at least one character into all fields."); } } </script> </head> <body> <form name="Sortform" > <input type="text" name="One"><A NAME="first"></A><br> <input type="text" name="Two"><br><A NAME="second"></A> <input type="text" name="Three"><br><A NAME="third"></A> <input type="submit" onClick="Sort(this.form)"> </form> </body> </html> Greetings experts, this is my first time here. So, please take easy on me. I have makup with 2 sections. The first section contains 5 form fields and are required. The second second has 2 form fields and are optional. Users can only choose from one section or the other but not both. The js script below ensures that if users select from section 2, section one will not challenge for validation and works a treat. The challenge I have now is to ensure that if users choose from section 1, the 2 form fields in section are automatically disabled so they won't be attempted to choose from it. Similarly, if users select from section 2, all form fields in section one are automatically disabled so they won't be tempted to choose from that section. Is this possible? If not possible, is it possible to raise an error? For instance, a user selects from section 1 and attempts to select from any of the 2 form fields in section 2, a message that says, "You can only select from one section but from both. Similarly if a user selects from section 2 first, same thing happens. Thanks very much for your assistance. function validate() { if(document.getElementById("<%=txtrequest.ClientID%>").value != "" && document.getElementById("<%=txtreceived.ClientID %>").value != "") { if (document.getElementById("<%=txtName.ClientID%>").value == "") { alert("Please enter name"); document.getElementById("<%=txtName.ClientID%>").focus(); return false; } if (document.getElementById("<%=txtCity.ClientID %>").value == "") { alert("Please enter city"); document.getElementById("<%=txtCity.ClientID %>").focus(); return false; } if (document.getElementById("<%=txtState.ClientID%>").value == "") { alert("Please enter state"); document.getElementById("<%=txtState.ClientID%>").focus(); return false; } if (document.getElementById("<%=txtZip.ClientID%>").value == "") { alert("Please enter zip"); document.getElementById("<%=txtZip.ClientID%>").focus(); return false; } if (checkradio() == false) { alert("Please enter contacts"); document.getElementById("<%=txtContacts.ClientID%>").focus(); return false; } } return true; } I have 2 types of addresses 1. Permanent address > Postal code, Street, City, State, Country 2. Current address > Postal code, Street, City, State, Country and a check box 'Copy from Permanent address' with Current address when i checked that check box then all values from 'Permanent address' will be copy to 'Current address' Please send me the code This is what I'm trying to do. CONDITIONS: If a person selects a Friday Class but not a Saturday Class the Total Cost Field will automatically enter $99. If a person selects a Saturday Class but not a Friday Class the Total Cost Field will automatically enter $99 as well. If a person selects both a Friday & Saturday Class the Total Cost field will automatically be $159. I found the following code and so far only have it changing when a Friday class is entered. I have no idea where to go from here. Please help. Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Test</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> <body> <div> <p><span class="style1">Friday Class:</span> <select id="fridayClass" > <option> </option> <option value="Class1"> Class 1 </option> <option value="Class2"> Class 2</option> <option value="Class3"> Class 3 </option> </select> </p> <p> <span class="style1">Saturday Class:</span> <select id="saturdayClass" > <option> </option> <option value="Class1"> Class 1 </option> <option value="Class2"> Class 2</option> <option value="Class3"> Class 3 </option> </select> </p> </div> <div><span class="style1">Total Cost:</span> <input type="text" id="totalCost"/></div> <script> window.onload = function () { var friday = document.getElementById('fridayClass'), saturday = document.getElementById('saturdayClass'); friday.onchange = function () { totalCost.value = '$99.00'; }; }; </script> Can someone please help me with my JavaScript, my code below works for BillingAddress2 but it doesn't for ShippingAddress2 (when you click off the ShippingAddress2 form field it alerts undefined) these form fields are in the same form JS Code: $("input").blur(function () { if($(this).val() == '') { if($(this).attr("id") != 'BillingAddress2' && $(this).attr("id") != 'ShippingAddress2') { alert($(this).attr("item")); } } }); html parts of the form Code: Billing Address Line 2:<br /><INPUT type="text" id="BillingAddress2" name="BillingAddress2" title="text" class="notrequired" value="<%=Session("BillingAddress2")%>" maxlength="30" tabindex="4"> Shipping Address 2:<br /><INPUT type="text" id="ShippingAddress2" name="ShippingAddress2" title="" class="notrequired" value="<%=Session("ShippingAddress2")%>" maxlength="30" tabindex="12"> So, I'm trying to make a function that marks a specific form field if it triggers an error when the form submits. Doesn't seem to work, though. The function to mark the form field resides in a .js file separate from the function that validates the form. Not sure if that matters, but thought I'd post it here just to be sure. Here's the code for the field marking script: Code: function markFormField(fieldInError) { // start by changing its background color fieldInError.style.backgroundColor = "#FF99FF"; // check the parent tag to make sure it's a label if (fieldInError.parentNode.tagName == "LABEL") { // if it is, change the font color fieldInError.parentNode.style.color = "#FF0000"; } } Here's the code that validates the form: Code: function checkNewsInput() { // see if the DOM can be used if (!document.getElementById) return; // otherwise, set up the variables var newsCat = document.getElementById("category"); var newsTitle = document.getElementById("title"); var newsBody = document.getElementById("body"); var newsDesc = document.getElementById("desc"); var newsTags = document.getElementById("tags"); var newsInfo = document.getElementById("info"); var newsPwd = document.getElementById("pwd"); /* NOTE: cursorToEnd is a function I got from a helpful member of this forum. Its code is not listed in this post. */ if (newsCat.value == "") { window.alert("Please select a category."); return false; markFormField(newsCat); } else if (newsTitle.value.length < 5 || newsTitle.value == "") { window.alert("The title must be at least 5 characters in length."); return false; markFormField(newsTitle); cursorToEnd(newsTitle); } else if (newsBody.value.length < 10 || newsBody.value == "") { window.alert("The body of the post must be at least 10 characters in length."); return false; markFormField(newsBody); cursorToEnd(newsBody); } else if (newsDesc.value.length < 10 || newsDesc.value == "") { window.alert("The description must be at least 10 characters in length."); return false; markFormField(newsDesc); cursorToEnd(newsDesc); } else if (newsTags.value.length < 5 || newsTags.value == "") { window.alert("The tags field must be at least 5 characters in length."); return false; markFormField(newsTags); cursorToEnd(newsTags); } else if (newsInfo.value.length < 10 || newsInfo.value == "") { window.alert("The info must be at least 10 characters in length."); return false; markFormField(newsInfo); cursorToEnd(newsInfo); } else if (newsPwd.value == "") { window.alert("Please enter your password."); return false; markFormField(newsPwd); cursorToEnd(newsPwd); } else { // all is good, so let the form submit return true; } } I have two slightly different forms on the same page, but I want the values in form1 to auto populate the same form fields in form2. 1 field is a text field, the rest are drop down menus. How would I accomplish this? Link to tutorial would be much appreciated. Thanks
Several posts here are almost what I need, but I can't put it all together.... thank you for your help, this is for a pet rescue charity! When selecting "mini" option, my form should should only allow typing in 6 out of 10 text input fields (the first 3 on the front, and the first 3 on the back too if its selected). Other sizes would allow typing in all 10. The NAME must be the same due to the shoppingcart used, but ID can be different. Also, if mini the maxlength of each should be 14, other sizes each maxlength is different. I will try to put the relevant code below, but one entire form is he http://wooftags.com/bone-iframe.html Code: <select name="product1[]"> <option value="mini">mini</option> <option value="small">small</option> <option value="medium">medium</option> <option value="large">large</option> </SELECT> <input type="text" name="product1[]2" size="14" maxlength="14" style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" /> <br /> <input type="text" name="product1[]2" size="18" maxlength="18" style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" /> <br /> <input type="text" name="product1[]2" size="20" maxlength="20" style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" /> <br /> <input type="text" name="product1[]2" size="25" maxlength="25" style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" /> <br /> <input type="text" name="product1[]2" size="20" maxlength="20" style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" /> <INPUT TYPE="HIDDEN" NAME="price2" VALUE="1"> <input id="back1" type="text" name="product2[]2" size=14 maxlength=14 style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" disabled="disabled"/> <br /> <input id="back2" type="text" name="product2[]2" size=18 maxlength=18 style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" disabled="disabled"/> <br /> <input id="back3" type="text" name="product2[]2" size=20 maxlength=20 style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" disabled="disabled"/> <br /> <input id="back4" type="text" name="product2[]2" size=25 maxlength=25 style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" disabled="disabled"/> <br /> <input id="back5" type="text" name="product2[]2" size=20 maxlength=20 style='text-transform: uppercase;' onblur="this.value=this.value.toUpperCase()" disabled="disabled"/> I have a drop down selection where it shows and hides form inputs depending on selection. When the page loads it shows the drop down selections with no form inputs. After user selects drop down it shows the form fields. It works great but I want it to show the same form fields after the user hits the submit button which submits the page to itself. It currenlty goes back to the default selection list and doesnt show any of the form fields. Basically it hides all the form fields after the user hits submit button. How do I make it keep the last shown form fields after the user hits the submit button? test3.html looks like this: Code: <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>Show/Hide</title> <script type="text/javascript"> function display(obj,id1,id2) { txt = obj.options[obj.selectedIndex].value; document.getElementById(id1).style.display = 'none'; document.getElementById(id2).style.display = 'none'; if ( txt.match(id1) ) { document.getElementById(id1).style.display = 'block'; } if ( txt.match(id2) ) { document.getElementById(id2).style.display = 'block'; } } </script> </head> <body> <form name="tester" action="test3.html" method="get"> <table width="340" cellspacing="0" cellpadding="2"> <thead> <tr> <td class="title">Type:</td> <td class="field"> <select name="type" onchange="display(this,'text','image');"> <option>Please select:</option> <option value="image">Image</option> <option value="text">Texts</option> <option value="invisible">Invisible</option> </select> </td> </tr> </thead> <tfoot> <tr> <td class="align-center" colspan="2"><input type="submit" name="submit" value="Update" /> <input type="reset" value="Reset" /></td> </tr> </tfoot> <tbody id="text" style="display: none;"> <tr> <td class="title">Text Color:</td> <td class="field"><input type="text" name="color" size="8" maxlength="7" /></td> </tr> </tbody> <tbody id="image" style="display: none;"> <tr> <td class="title">Image:</td> <td class="field"><input type="file" name="image" size="10" /></td> </tr> <tr> <td class="title">X Coordinates:</td> <td class="field"><input type="text" name="x_coordinates" size="5" /></td> </tr> <tr> <td class="title">Y Coordinates:</td> <td class="field"><input type="text" name="y_coordinates" size="5" /></td> </tr> <tr> <td class="title">Text Color:</td> <td class="field"><input type="text" name="color" size="8" maxlength="7" /></td> </tr> </tbody> <tbody> <tr> <td class="title">Display:</td> <td class="field"> <select name="display"> <option value="visitors">Visitors</option> <option value="hits">Hits</option> </select> </td> </tr> </tbody> </table> </form> </body> </html> |