[jQuery] ("validate") - validator.addMethod problems

[jQuery] ("validate") - validator.addMethod problems


Hi All
I am hoping somebody can help me with this. I have two drop down
select boxes (Month, Year) which I use to select a credit card expiry
date. I want to check if the month and year they select is before the
current month and year (to check if credit card has expired). I have
created a custom validation method to do this using the jquery
validation plugin. The code for the addMethod is below:
// add method to validate expiry date
$.validator.addMethod("expirydate", function(value, element) {
var result = true;
var strYear = value;
var strMonth = $("#fMonth option:selected").val();
var datNow = new Date();
var intMonth = datNow.getMonth()+1;
var intYear = datNow.getFullYear()
if(strYear.length==2) {
intYear = "" + intYear
strYear = intYear.substring(0,2) + strYear
}
alert(strYear);
if (parseInt(strYear) < parseInt(intYear)) { result =
false; }
if (parseInt(strMonth) < parseInt(intMonth)) { result =
false; }
// return result
return this.optional(element) || result==true;
}, "Card has already expired");
Problem is that my jquery does work at all on the page when I add this
method. The problem is with the following two lines:
if (parseInt(strYear) < parseInt(intYear)) { result = false; }
if (parseInt(strMonth) < parseInt(intMonth)) { result = false; }
I cant see anything wrong with this code and cant understand why it
does not work. Here is the html code for the select boxes
<tr>
<td class="formLabel"><span class="required">*</span>Expiry Date</
td>
<td class="formField"><select name="fMonth" id="fMonth">
<option selected="selected" value="">Month</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="fYear" id="fYear">
<option selected="selected" value="">Year</option>
<option value="09">2009</option>
<option value="10">2010</option>
<option value="11">2011</option>
</select>
</td>
</tr>
The following code is how I implemented the validation:
rules: {
fYear: {
required: function() {
return $("input[name=rbPaymentType]")
[0].checked==true;
},
expirydate
}
}
If anybody can help I would greatly appreciate it.
Thanks
mwskuzzy