Gracias!!!!
// carreras disponibles
var carreras = [["Diseño Multimedia",false],
["Diseño y Administración de Sitios Web",true],
["Diseño de Video Juegos",false],
["Diseño de Indumentaria",false],
["Cine de Animación",false]];
// turnos y horarios
var turnos = [["Mañana","9 a 13 hs",true],
["Tarde","14 a 18 hs",false],
["Noche","18.45 a 22.45 hs",true]];
// materias de la carrera diseño web
var materiasWeb = [["Tecnología de las Comunicaciones I",
"Diseño de Interfaces",
"Introducción a la Programación",
"Construcción del Guión Interactivo",
"Diseño Gráfico",
"Psicología de la Comunicación"],
["Tecnología de las Comunicaciones II",
"Sistemas Operativos I",
"Programación I",
"Diseño Interactivo",
"Procesos Contables",
"Técnicas de Marketing"],
["Tecnología de las Comunicaciones III",
"Sistemas Operativos II",
"Clientes Web",
"Sistemas de Información y Control",
"Tecnología e Informática",
"Programación II"],
["Tecnología de las Comunicaciones IV",
"Sistemas Operativos III",
"Programación III",
"Etica y Deontología Profesional",
"Seguridad Informática",
"Seminario Final"]];
window.onload=function(){
nomb=$("frm_nombre");
apellido=$("frm_apellido");
nacimiento=$("frm_nacimiento");
dni=$("frm_dni");
usuario=$("frm_usuario");
contrasenia=$("frm_contrasenia");
contrasenia2=$("frm_contrasenia2");
correo=$("frm_correo");
correo2=$("frm_correo2");
edad=$("frm_edad");
nomb.maxLength = 15;
nacimiento.maxLength=10;
nacimiento.value = "dd/mm/aaaa";
dni.maxLength = 8;
edad.disabled=true;
usuario.maxLength = 12;
contrasenia.maxLength = 10;
nacimiento.onchange=function(){
Nacim(nacimiento,edad);
}
// validar carrera
var turno = $("sel_turno");
var carr = $ ("sel_carreras");
var divs = $$("i");
var inputs = $$("input");
var divHora = divs[0];
var r1 = inputs[10];
var r2 = inputs[11];
var r3 = inputs[12];
var r4 = inputs[13];
var o = document.createElement("option");
for (var i=0;i<carreras.length;i++) {
var o = document.createElement("option");
carr.appendChild(o);
o.text=carreras[i][0];
o.selected=carreras[i][1];
o.id=i+"car";
o.value=i;
}
for (var i=0;i<turnos.length;i++) {
var f = document.createElement("option");
$("sel_turno").appendChild(f);
f.text=turnos[i][0];
f.selected=turnos[i][2];
f.title=turnos[i][1];
f.id=i+"tur";
f.value=i;
}
turno.disabled=true;
r1.disabled=true;
r2.disabled=true;
r3.disabled=true;
r4.disabled=true;
$("sel_carreras").onchange=function(){
turno.disabled=false;
turno.onchange=function(){
var indice = this.selectedIndex;
divHora.innerHTML=this.options[indice].title;
r1.disabled=false;
r2.disabled=false;
r3.disabled=false;
r4.disabled=false;
}
};
var labels = $$("label");
var ultLabel = labels[15];
ultLabel.innerHTML="";
var tam = materiasWeb[[0][0]].length;
r1.onclick=function(){
ultLabel.innerHTML="";
for (var e=0 ; e<=tam-1 ; e++){
ultLabel.style.display="";
var ul = (materiasWeb[0][e]);
var id = "1_"+e+1;
crear ("input","div",id);
crear2 ("t",ul);
}
};
r2.onclick=function(){
ultLabel.innerHTML="";
for (var i=0 ; i<=tam-1 ; i++){
ultLabel.style.display="";
var ul = (materiasWeb[1][i]);
var id = "2_"+i+1;
crear ("input","div",id);
crear2 ("t",ul);
}
};
r3.onclick=function(){
ultLabel.innerHTML="";
for (var i=0 ; i<=tam-1 ; i++){
ultLabel.style.display="";
var ul = (materiasWeb[2][i]);
var id = "3_"+i+1;
crear ("input","div",id);
crear2 ("t",ul);
}
};
r4.onclick=function(){
ultLabel.innerHTML="";
for (var i=0 ; i<=tam-1 ; i++){
ultLabel.style.display="";
var ul = (materiasWeb[3][i]);
var id = "4_"+i+1;
crear ("input","div",id);
crear2 ("t",ul);
}
};
function crear(ele,tex,id) {
var ultLabel1 = labels[15];
var a = document.createElement(ele);
var t = document.createElement(tex);
a.type="checkbox";
ultLabel1.appendChild(a);
a.id=id;
};
function crear2(ele,tex) {
var ultLabel2 = labels[15];
var a = document.createElement(ele);
ultLabel2.appendChild(a);
a.innerHTML=tex+"<br />";
};
// Boton enviar
$$("button")[0].onclick=function() {
Nom(nomb);
Nom(apellido);
Dni(dni);
Nacim(nacimiento,edad);
User(usuario);
Contra(contrasenia, contrasenia2);
Correo1(correo,correo2);
}
$$("button")[1].onclick=function() {
nomb.value=""
apellido.value="";
nacimiento.value="dd/mm/aaaa";
dni.value="";
usuario.value="";
contrasenia.value="";
contrasenia2.value="";
edad.value="";
correo.value="";
correo2.value=""
}
$$("button")[2].onclick=function() {
ultLabel.innerHTML="";
}
$$("button")[3].onclick=function() {
nomb.value=""
apellido.value="";
nacimiento.value="dd/mm/aaaa";
dni.value="";
edad.value="";
}
$$("button")[4].onclick=function() {
usuario.value="";
contrasenia.value="";
contrasenia2.value="";
correo.value="";
correo2.value=""
}
}
function $(i){ // obtiene id
return document.getElementById(i);
}
function $$(i){ // obtiene tag
return document.getElementsByTagName(i);
}
function pintar(i){
i.style.border="solid 1px #f00";
}
function despintar(i){
i.style.border="1px solid #ccc";
}
// validar nombre y apellido
function Nom(nap){
despintar(nap)
var n=0;
var correcto ="abcdefghijklmnñopqrstuvwxyz ";
var primer="ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
var valnom= nap.value;
var si = true;
var ok= true;
for (i =1; i < valnom.length; i++) {
aux = valnom.charAt(i);
for (b = 0; b < correcto.length; b++)
if (aux== correcto.charAt(b))
break;
if (b == correcto.length) {
si = false;
break;
}
}
for(a=0;a<primer.length;a++){
if(valnom[0]==primer.charAt(a)){
n=(n+1);
break;
}
}
if(n>0){ok=true;}
if(n==0){ok=false;}
if ((!ok) || (!si) || (valnom.length>15)) {
alert("No debe haber caracteres especiales y la primer letra debe ser Mayuscula");
pintar(nap)
}
}
// validar fecha de nacimiento y poner la edad
function Nacim(nac,eda){
despintar(nac)
var m_fecha=nac.value;
if (m_fecha.indexOf("/")!==-1){
var v_fecha=m_fecha.split("/");
var Dia=v_fecha[0];
var Mes=v_fecha[1];
var Ano=v_fecha[2];
//controla el dia, mes y año
if (!(Dia>=1 && Dia<=31))
if (!(Mes>=1 && Mes<=12))
if (!(Ano>=1900 && Ano<=2050)) {alert ("Fecha incorrecta");pintar(nac)}
//si el año no es biciesto y el mes es febrero
if(Mes==2 && Ano%4>0 && Dia>28 ) {alert ("El año no es biciesto febrero no puede tener mas de 28 dias"); pintar(nac)}
//si el año es biciesto y el mes es febrero
if (Mes==2 && Ano%4==0 && Dia>29 ) {alert ("El año es biciesto febrero no puede tener mas de 29 dias"); pintar(nac)}
hoy= new Date();
m= hoy.getMonth()+1;
d= hoy.getUTCDate();
var hoy = new Date();
var a = hoy.getFullYear();
var m = hoy.getMonth()+1;
var d = hoy.getUTCDate();
var ed = (a - Ano) - 1;
var edad = 0;
if (m<Mes || m==Mes && d<Dia)
{edad = ed;}
if (m>Mes || m==Mes && d>=Dia)
{edad = ed+1;}
eda.value = edad
}
else{
alert ("Fecha incorrecta")
eda.value=0
pintar(nac)
}
}
// validar dni
function Dni(num){
despintar(num)
var numero= num.value;
if ( !(/^\d{8}$/.test(numero)) || numero.length<
{alert("Ingrese 8 caracteres numericos");
pintar(num);}
}
// validar usuario
function User(us){
despintar(us)
var correcto = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
var valus = us.value;
var ok = true;
if (valus.length=="")
{
alert("Completar campo");
pintar(us)
}
for (i = 0; i < valus.length; i++) {
ch = valus.charAt(i);
for (j = 0; j < correcto.length; j++)
if (ch == correcto.charAt(j))
break;
if (j == correcto.length) {
ok = false;
break;
}
}
if (!ok) {
alert("Escriba solo letras");
pintar(us)
}
}
// validar contrasenia
function Contra(con,dos){
despintar(con)
despintar(dos)
var correcto ="abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
var contr = con.value;
var ok = true;
for (i = 0; i < contr.length; i++) {
ch = contr.charAt(i);
for (j = 0; j < correcto.length; j++)
if (ch == correcto.charAt(j))
break;
if (j == correcto.length) {
ok = false;
break;
}
}
if ((!ok) || (contr.length<
alert ("Minimo 8 caracteres alfabeticos sin caracteres especiales ni acentos");
pintar(con)
}
// validar contrasenia2
var contra2 = dos.value;
if ((contr) != (contra2)){
alert ("La repeticion de la contrasena no coincide")
pintar(dos)
}
if (contra2==""){
alert ("Completar campo")
pintar(dos)
}
}
// validar correo
function Correo1(corr,corr2){
despintar(corr)
despintar(corr2)
atPos=0
periodPos=0
var email = corr.value;
invalidChars = " /:,;"
if (email == "") {
alert("Completar campo")
pintar(corr) }
for (i=0; i<invalidChars.length; i++) {
badChar = invalidChars.charAt(i)
if (email.indexOf(badChar,0) > -1) {
alert("Dirección de e-mail errónea")
pintar(corr)}
}
atPos = email.indexOf("@",1)
periodPos = email.indexOf(".",atPos)
if ((atPos == -1) || (email.indexOf("@",atPos+1) > -1) || (periodPos == -1) || (periodPos+3 > email.length)){
alert("Dirección de e-mail errónea")
pintar(corr) }
// validar contrasenia2
var correodos = corr2.value;
if ((email) != (correodos)){
alert ("La repeticion del correo electronico no coincide")
pintar(corr2)
}
if (correodos==""){
alert ("Completar campo")
pintar(corr2)
}
}
CODIGO HTML
<!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="es" lang="es">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1" />
<title>Examen Parcial, Programacion I</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta name="author" content="" />
<script type="text/javascript" src="Parcial Programacion I.js"></script>
<style>
fieldset { display:block; width:370px; margin:10px; padding:10px; }
#frm { width:900px; margin:10px; padding:10px; }
#fs_comision div { float:left; }
</style>
</head>
<body>
<div id="rotulo">
<h2>Examen Parcial, Programacion I</h2>
<h4>Prof. Natan Santolo</h4>
</div>
<!--
ÉXITOS!!!
-->
<div id="frm">
<!-- <form id="" name="" method="" action=""> -->
<fieldset id="fs_personal">
<legend>Datos personales</legend>
<div>
<label>Nombre(s):
<input type="text" name="frm_nombre" id="frm_nombre" /></label>
</div><br/>
<div>
<label>Apellido(s):
<input type="text" name="frm_apellido" id="frm_apellido" /></label>
</div><br/>
<div>
<label>Fecha de nacimiento:
<input type="text" name="frm_nacimiento" id="frm_nacimiento" /></label>
<label> Edad:
<input type="text" name="frm_edad" id="frm_edad" size="3" maxlength="3" /></label>
</div><br/>
<div>
<label>DNI:
<input type="text" name="frm_dni" id="frm_dni" /></label>
</div>
</fieldset>
<fieldset id="fs_logeo">
<legend>Datos de logueo</legend>
<div>
<label>Nombre de usuario:
<input type="text" name="frm_usuario" id="frm_usuario" /></label>
</div><br/>
<div>
<label>Contraseńa:
<input type="text" name="frm_contrasenia" id="frm_contrasenia" /></label>
</div><br/>
<div>
<label>Re-ingresar Contraseńa:
<input type="text" name="frm_contrasenia2" id="frm_contrasenia2" /></label>
</div><br />
<div>
<label>Correo electrónico:
<input type="text" name="frm_correo" id="frm_correo" /></label>
</div><br/>
<div>
<label>Re-ingresar correo electrónico:
<input type="text" name="frm_correo2" id="frm_correo2" /></label>
</div>
</fieldset>
<fieldset id="fs_carrera">
<legend>Elige tu carrera</legend>
<div>
<select name="sel_carreras"></select>
<select name="sel_turno"></select>
</div>
</fieldset>
<fieldset id="fs_horario">
<legend>Horario de entrada</legend>
<label>Horario de Entrada: <span><i>debe elegir un turno</i></span></label>
</fieldset>
<fieldset id="fs_comision">
<legend>Elige tu comisión</legend>
<label>
<input type="radio" name="comision" value="1" />
1ro</label>
<label>
<input type="radio" name="comision" value="2" />
2do</label>
<label>
<input type="radio" name="comision" value="3" />
3ro</label>
<label>
<input type="radio" name="comision" value="4" />
4to</label>
</fieldset>
<fieldset id="fs_materias">
<legend>Materias para anotarse</legend>
<label>
<input type="checkbox" value="materia1" />
Nombre de Materia</label>
<br />
</fieldset>
<fieldset id="fs_control">
<legend>Control</legend>
<div><button><b>Enviar</b></button><button>Borrar todo</button><button>Limpiar materias</button></div>
<div><button>Borrar datos personales</button><button>Borrar datos de logueo</button></div>
</fieldset>
<!--</form>-->
</div>
</body>
</html>
