Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chriss Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Validate Selection List Not working 2

Status
Not open for further replies.

shortkid422

Programmer
Joined
Jan 2, 2004
Messages
8
Location
US
I have this code but Javascript is not validating the code.
Code:
<script Language=&quot;JavaScript&quot;>
function ValidateForm(form)
{
   if((form.month_arrive.value = &quot;February&quot;) && (form.day_arrive.value > &quot;29&quot;))  
   { 
      alert('That date does not exist') 
      form.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;April&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;June&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;September&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;November&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.focus(); 
      return false; 
   }
 
return true;
 
} 
</script>
<form action=&quot;validate.php&quot; method=&quot;post&quot;>
<table align=&quot;center&quot;>
 <tr>
  <td align=&quot;center&quot;>Please select the month and day of the start of your vacation:</td>
 </tr>
</table>
<table align=&quot;center&quot;>
 <tr>
  <td>
<select name=&quot;month_arrive&quot;>
  <option value=&quot;January&quot;>January</option>
  <option value=&quot;February&quot;>February</option>
  <option value=&quot;March&quot;>March</option>
  <option value=&quot;April>April</option>
  <option value=&quot;May&quot;>May</option>
  <option value=&quot;June&quot;>June</option>
  <option value=&quot;July&quot;>July</option>
  <option value=&quot;August&quot;>August</option>
  <option value=&quot;September&quot;>September</option>
  <option value=&quot;October&quot;>October</option>
  <option value=&quot;November&quot;>November</option>
  <option value=&quot;December&quot;>December</option>
</select>
</td><td>
<select name=&quot;day_arrive&quot;>
  <option value=&quot;1&quot;>1</option>
  <option value=&quot;2&quot;>2</option>
  <option value=&quot;3&quot;>3</option>
  <option value=&quot;4&quot;>4</option>
  <option value=&quot;5&quot;>5</option>
  <option value=&quot;6&quot;>6</option>
  <option value=&quot;7&quot;>7</option>
  <option value=&quot;8&quot;>8</option>
  <option value=&quot;9&quot;>9</option>
  <option value=&quot;10&quot;>10</option>
  <option value=&quot;11&quot;>11</option>
  <option value=&quot;12&quot;>12</option>
  <option value=&quot;13&quot;>13</option>
  <option value=&quot;14&quot;>14</option>
  <option value=&quot;15&quot;>15</option>
  <option value=&quot;16&quot;>16</option>
  <option value=&quot;17&quot;>17</option>
  <option value=&quot;18&quot;>18</option>
  <option value=&quot;19&quot;>19</option>
  <option value=&quot;20&quot;>20</option>
  <option value=&quot;21&quot;>21</option>
  <option value=&quot;22&quot;>22</option>
  <option value=&quot;23&quot;>23</option>
  <option value=&quot;24&quot;>24</option>
  <option value=&quot;&quot;25>25</option>
  <option value=&quot;26&quot;>26</option>
  <option value=&quot;27&quot;>27</option>
  <option value=&quot;28&quot;>28</option>
  <option value=&quot;29&quot;>29</option>
  <option value=&quot;30&quot;>30</option>
  <option value=&quot;31&quot;>31</option>
</select>
  </td>
 </tr>
</table>
<table align=&quot;center&quot;>
 <tr>
  <td align=&quot;center&quot;><input type=&quot;submit&quot; value=&quot;Continue&quot; onsubmit=&quot;javascript:return ValidateForm(this)&quot;></td>
 </tr>
</table>
</form>
 
Move the onsubmit handler from the submit element inside the form tag:
Code:
<form action=&quot;validate.php&quot; method=&quot;post&quot; onsubmit=&quot;javascript:return ValidateForm(this)&quot;>
 
Like this??
Code:
<script Language=&quot;JavaScript&quot;>
function ValidateForm(form)
{
   if((form.month_arrive.value = &quot;February&quot;) && (form.day_arrive.value > &quot;29&quot;))  
   { 
      alert('That date does not exist') 
      form.day_arrive.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;April&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.day_arrive.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;June&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.day_arrive.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;September&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.day_arrive.focus(); 
      return false; 
   }
   
   if((form.month_arrive.value = &quot;November&quot;) && (form.day_arrive.value > &quot;30&quot;))  
   { 
      alert('That date does not exist') 
      form.day_arrive.focus(); 
      return false; 
   }
 
return true;
 
} 
</script>
<form action=&quot;validate.php&quot; method=&quot;post&quot; onsubmit=&quot;javascript:return ValidateForm(this)&quot;>
<table align=&quot;center&quot;>
 <tr>
  <td align=&quot;center&quot;>Please select the month and day of the start of your vacation:</td>
 </tr>
</table>
<table align=&quot;center&quot;>
 <tr>
  <td>
<select name=&quot;month_arrive&quot;>
  <option value=&quot;January&quot;>January</option>
  <option value=&quot;February&quot;>February</option>
  <option value=&quot;March&quot;>March</option>
  <option value=&quot;April>April</option>
  <option value=&quot;May&quot;>May</option>
  <option value=&quot;June&quot;>June</option>
  <option value=&quot;July&quot;>July</option>
  <option value=&quot;August&quot;>August</option>
  <option value=&quot;September&quot;>September</option>
  <option value=&quot;October&quot;>October</option>
  <option value=&quot;November&quot;>November</option>
  <option value=&quot;December&quot;>December</option>
</select>
</td><td>
<select name=&quot;day_arrive&quot;>
  <option value=&quot;1&quot;>1</option>
  <option value=&quot;2&quot;>2</option>
  <option value=&quot;3&quot;>3</option>
  <option value=&quot;4&quot;>4</option>
  <option value=&quot;5&quot;>5</option>
  <option value=&quot;6&quot;>6</option>
  <option value=&quot;7&quot;>7</option>
  <option value=&quot;8&quot;>8</option>
  <option value=&quot;9&quot;>9</option>
  <option value=&quot;10&quot;>10</option>
  <option value=&quot;11&quot;>11</option>
  <option value=&quot;12&quot;>12</option>
  <option value=&quot;13&quot;>13</option>
  <option value=&quot;14&quot;>14</option>
  <option value=&quot;15&quot;>15</option>
  <option value=&quot;16&quot;>16</option>
  <option value=&quot;17&quot;>17</option>
  <option value=&quot;18&quot;>18</option>
  <option value=&quot;19&quot;>19</option>
  <option value=&quot;20&quot;>20</option>
  <option value=&quot;21&quot;>21</option>
  <option value=&quot;22&quot;>22</option>
  <option value=&quot;23&quot;>23</option>
  <option value=&quot;24&quot;>24</option>
  <option value=&quot;&quot;25>25</option>
  <option value=&quot;26&quot;>26</option>
  <option value=&quot;27&quot;>27</option>
  <option value=&quot;28&quot;>28</option>
  <option value=&quot;29&quot;>29</option>
  <option value=&quot;30&quot;>30</option>
  <option value=&quot;31&quot;>31</option>
</select>
  </td>
 </tr>
</table>
<table align=&quot;center&quot;>
 <tr>
  <td align=&quot;center&quot;><input type=&quot;submit&quot; value=&quot;Continue&quot; ></td>
 </tr>
</table>
</form>


Glen
 
There is an error in your script. Logical &quot;equals&quot; operator is &quot;==&quot;, not &quot;=&quot;. You need to change it in each &quot;if&quot;:
Code:
if((form.month_arrive.value == &quot;February&quot;) && (form.day_arrive.value > &quot;29&quot;))....
if((form.month_arrive.value == &quot;April&quot;) && (form.day_arrive.value > &quot;30&quot;))
and so on.
 
most of it works, the only problem is that like on February, if i do 3 or 4 as the day, i get the errror, but thanks for helping.
 
1. Correct errors in your HTML(double quotes either missing or in a wrong place), should be like this:
in month_arrive ddl:
Code:
<option value=&quot;April&quot;>April</option>
in day_arrive ddl:
Code:
<option value=&quot;25&quot;>25</option>
2. In javascript, get rid of &quot;&quot; around month numbers, looks like it's treating them as strings, not numbers:
Code:
if((form.month_arrive.value == &quot;February&quot;) && (form.day_arrive.value > 29))
 
Arrgh!!!! I've been playing with the options array, selectedIndex property and everything else I could think of and missing the ovious. Thanks For the insite LV a star for you for releiving my frustration and showing me that I should check the easy stuff first.

Glen
 
Ok, i found a new script, small problem now, itll submit even if the date isnt valid:
Code:
<script Language=&quot;JavaScript&quot;>
function checkDate() {
 var myDayStr = document.CheckDate.formDate.value;
var myMonthStr = document.CheckDate.formMonth.value;
var myYearStr = document.CheckDate.formYear.value;
var myDateStr = myDayStr + ' ' + myMonthStr + ' ' + myYearStr;

/* Using form values, create a new date object
which looks like &quot;Wed Jan 1 00:00:00 EST 1975&quot;. */
var myDate = new Date( myDateStr );

// Convert the date to a string so we can parse it.
var myDate_string = myDate.toGMTString();

/* Split the string at every space and put the values into an array so,
using the previous example, the first element in the array is &quot;Wed&quot;, the
second element is &quot;Jan&quot;, the third element is &quot;1&quot;, etc. */
var myDate_array = myDate_string.split( ' ' );

/* Convert bad dates into valid ones. */
if ( myDate_array[2] != myMonthStr ) {
  alert( 'I\'m sorry, but &quot;' + myDateStr + '&quot; is NOT a valid date.' );
  form.CheckDate.focus();
  return false;  
}
return true; 
}
 
</script>
<FORM NAME=CheckDate METHOD=POST ACTION=validate.php>
<SELECT NAME=formMonth>
<OPTION VALUE=Jan>Jan
<OPTION VALUE=Feb>Feb
<OPTION VALUE=Mar>Mar
<OPTION VALUE=Apr>Apr
<OPTION VALUE=May>May
<OPTION VALUE=Jun>Jun
<OPTION VALUE=Jul>Jul
<OPTION VALUE=Aug>Aug
<OPTION VALUE=Sep>Sep
<OPTION VALUE=Oct>Oct
<OPTION VALUE=Nov>Nov
<OPTION VALUE=Dec>Dec
</SELECT>

<SELECT NAME=formDate>
<OPTION VALUE=1>1
<OPTION VALUE=2>2
<OPTION VALUE=3>3
<OPTION VALUE=4>4
<OPTION VALUE=5>5
<OPTION VALUE=6>6
<OPTION VALUE=7>7
<OPTION VALUE=8>8
<OPTION VALUE=9>9
<OPTION VALUE=10>10
<OPTION VALUE=11>11
<OPTION VALUE=12>12
<OPTION VALUE=13>13
<OPTION VALUE=14>14
<OPTION VALUE=15>15
<OPTION VALUE=16>16
<OPTION VALUE=17>17
<OPTION VALUE=18>18
<OPTION VALUE=19>19
<OPTION VALUE=20>20
<OPTION VALUE=21>21
<OPTION VALUE=22>22
<OPTION VALUE=23>23
<OPTION VALUE=24>24
<OPTION VALUE=25>25
<OPTION VALUE=26>26
<OPTION VALUE=27>27
<OPTION VALUE=28>28
<OPTION VALUE=29>29
<OPTION VALUE=30>30
<OPTION VALUE=31>31
</SELECT>
,
<SELECT NAME=formYear>
<OPTION VALUE=2004>2004
 
</SELECT>

<INPUT TYPE=submit NAME=Submit VALUE=&quot; Check the date &quot; onClick=&quot;checkDate();&quot;>
<FORM>
 
This should wortk for you... It's an interesting technique - one that I hadn't used before - to validate a date before. Normally, I loop around an array of 12 values, taking in to account leap years... Anyway - here's the modified code:

Code:
<HTML>
<HEAD>
<SCRIPT LANGUAGE=&quot;JavaScript&quot;>
<!--

	function checkDate()
	{
		var formObj = document.forms['myForm'];
		var monthValue = formObj.formMonth.options[formObj.formMonth.selectedIndex].value;
		var dayValue = formObj.formDay.options[formObj.formDay.selectedIndex].value;
		var yearValue = formObj.formYear.options[formObj.formYear.selectedIndex].value;

		var myDate = new Date(yearValue, monthValue, dayValue);
		with (myDate)
		{
			if (getFullYear() != yearValue || getMonth() != monthValue || getDate() != dayValue)
			{
				alert('Bad!');
				return(false);
			}
				else
			{
				alert('Good!');
				return(true);
			}
		}
	}
 
//-->
</SCRIPT>
</HEAD>

<BODY>
	<FORM NAME=&quot;myForm&quot; METHOD=&quot;post&quot; ACTION=&quot;validate.php&quot;>
		<SELECT NAME=&quot;formMonth&quot;>
			<OPTION VALUE=&quot;0&quot;>Jan</OPTION>
			<OPTION VALUE=&quot;1&quot;>Feb</OPTION>
			<OPTION VALUE=&quot;2&quot;>Mar</OPTION>
			<OPTION VALUE=&quot;3&quot;>Apr</OPTION>
			<OPTION VALUE=&quot;4&quot;>May</OPTION>
			<OPTION VALUE=&quot;5&quot;>Jun</OPTION>
			<OPTION VALUE=&quot;6&quot;>Jul</OPTION>
			<OPTION VALUE=&quot;7&quot;>Aug</OPTION>
			<OPTION VALUE=&quot;8&quot;>Sep</OPTION>
			<OPTION VALUE=&quot;9&quot;>Oct</OPTION>
			<OPTION VALUE=&quot;10&quot;>Nov</OPTION>
			<OPTION VALUE=&quot;11&quot;>Dec</OPTION>
		</SELECT>

		<SELECT NAME=&quot;formDay&quot;>
			<OPTION VALUE=&quot;1&quot;>1</OPTION>
			<OPTION VALUE=&quot;2&quot;>2</OPTION>
			<OPTION VALUE=&quot;3&quot;>3</OPTION>
			<OPTION VALUE=&quot;4&quot;>4</OPTION>
			<OPTION VALUE=&quot;5&quot;>5</OPTION>
			<OPTION VALUE=&quot;6&quot;>6</OPTION>
			<OPTION VALUE=&quot;7&quot;>7</OPTION>
			<OPTION VALUE=&quot;8&quot;>8</OPTION>
			<OPTION VALUE=&quot;9&quot;>9</OPTION>
			<OPTION VALUE=&quot;10&quot;>10</OPTION>
			<OPTION VALUE=&quot;11&quot;>11</OPTION>
			<OPTION VALUE=&quot;12&quot;>12</OPTION>
			<OPTION VALUE=&quot;13&quot;>13</OPTION>
			<OPTION VALUE=&quot;14&quot;>14</OPTION>
			<OPTION VALUE=&quot;15&quot;>15</OPTION>
			<OPTION VALUE=&quot;16&quot;>16</OPTION>
			<OPTION VALUE=&quot;17&quot;>17</OPTION>
			<OPTION VALUE=&quot;18&quot;>18</OPTION>
			<OPTION VALUE=&quot;19&quot;>19</OPTION>
			<OPTION VALUE=&quot;20&quot;>20</OPTION>
			<OPTION VALUE=&quot;21&quot;>21</OPTION>
			<OPTION VALUE=&quot;22&quot;>22</OPTION>
			<OPTION VALUE=&quot;23&quot;>23</OPTION>
			<OPTION VALUE=&quot;24&quot;>24</OPTION>
			<OPTION VALUE=&quot;25&quot;>25</OPTION>
			<OPTION VALUE=&quot;26&quot;>26</OPTION>
			<OPTION VALUE=&quot;27&quot;>27</OPTION>
			<OPTION VALUE=&quot;28&quot;>28</OPTION>
			<OPTION VALUE=&quot;29&quot;>29</OPTION>
			<OPTION VALUE=&quot;30&quot;>30</OPTION>
			<OPTION VALUE=&quot;31&quot;>31</OPTION>
		</SELECT>

		<SELECT NAME=&quot;formYear&quot;>
			<OPTION VALUE=&quot;2004&quot;>2004</OPTION>
 		</SELECT>

		<INPUT TYPE=&quot;submit&quot; VALUE=&quot; Check the date &quot; onClick=&quot;return(checkDate());&quot;>
	<FORM>
</BODY>
</HTML>

Hope this helps!

Dan
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top