con el día se ve todo mas claro
matemos todos los pájaros de un tiro (recibir la fecha en un único campo, con formato y validada. incluso los años bisiestos)
Cita: <!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript">
vFecha = {
vardia : '',
varmes : '',
varanio : '',
fnc: function() {
if ((vFecha.varmes == 04 || vFecha.varmes == 06 || vFecha.varmes == 09 || vFecha.varmes == 11) && vFecha.vardia >= 31) {
document.getElementById('fecha').value = vFecha.varanio + '--' + vFecha.vardia;
alert('el mes seleccionado no tiene tantos días');
} else if (vFecha.varmes == 02 && vFecha.vardia >= 30) {
document.getElementById('fecha').value = vFecha.varanio + '--' + vFecha.vardia;
alert('el mes seleccionado no tiene tantos días');
} else if (vFecha.varmes == 02 && vFecha.vardia >= 29 && vFecha.varanio % 4 != 0) {
document.getElementById('fecha').value = '-' + vFecha.varmes + '-' + vFecha.vardia;
alert('el año seleccionado no es bisiesto');
} else {
document.getElementById('fecha').value = vFecha.varanio + '-' + vFecha.varmes + '-' + vFecha.vardia;
}
}
}
</script>
</head>
<body>
<form>
<input type="text" name="fecha" id= "fecha" />
<br />
<select name="dia" id="dia" onchange="vFecha.vardia = this.value; vFecha.fnc();">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="mes" id="mes" onchange="vFecha.varmes = this.value; vFecha.fnc();">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="anio" id="anio" onchange="vFecha.varanio = this.value; vFecha.fnc();">
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
</form>
</body>
</html>
ahora sólo te queda validar que el largo del control "fecha" sea 10