Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - D.Ohm

Páginas: [1]
1
Hola, acá mi resolución del ejercicio propuesto CU01183E del curso básico de programación web con JavaScript de aprenderaprogramar.


Citar
EJERCICIO

Crear el código HTML y JavaScript que cumpla con las siguientes funciones:

a) Deberá presentarse un formulario con 2 elementos select. El primer elemento select permitirá elegir país y podrá elegirse entre México, España, Perú y Colombia.

b) El segundo elemento select permitirá elegir ciudad y podrá elegirse entre México D.F., Guadalajara, Madrid, Barcelona, Lima, Trujillo, Bogotá y Cali.

c) Si el usuario selecciona ciudad sin haber elegido país, deberá mostrarse como opción elegida de país el país correspondiente a la ciudad. Por ejemplo, si el usuario selecciona Bogotá deberá aparecer como país seleccionado Colombia.

d) Si el usuario selecciona un país en primer lugar, deberán deshabilitarse todas las opciones que no correspondan a ciudades de ese país. Por ejemplo si el usuario elige España, sólo podrá elegir entre Madrid y Barcelona, debiendo estar México D.F., Guadalajara, Lima, Trujillo, Bogotá y Cali deshabilitadas. Si el usuario cambia el país, deberán cambiar las ciudades cuya elección es posible.

e) Ampliación opcional para el ejercicio: introduce medidas de seguridad adicionales para que no puedan existir incoherencias entre el país seleccionado y la ciudad. Por ejemplo, imagina que el usuario elige en primer lugar como ciudad México D.F. y luego elige como país Perú. Introduce medidas de seguridad que impidan que esto suceda.


Código: [Seleccionar]
<!DOCTYPE html>

<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">

<style type="text/css"> body, p {margin-left:30px; font-family: sans-serif;}

.estiloForm {background-color: #f3f3f3; border: solid 2px black; margin-left:20px; width: 330px; padding:10px; }

.estiloForm label {display: block; width: 120px; float: left; text-align:right; margin-bottom: 35px; padding-right: 20px;}

br {clear: left;} input[type="submit"], input[type="reset"] {margin:25px 5px 10px 5px;}

</style>
<script type="text/javascript">

    window.onload = function(){

        formuP = formulario.pais;
        formuC = formulario.ciudad;

            for (var i=0; i<formulario.length;i++){
               if (formulario[i].name=="pais") {formulario[i].addEventListener('change', inhabCiudad);}
               else {formulario[i].addEventListener('change', selecCiudad);}
                if(formulario[i].value=="Cancelar"){formulario[i].addEventListener('click', recarga)}
            }
    }

    function inhabCiudad(){

        var esto = this;
        for(var i=0; i<formuC.options.length;i++){
            if(esto.value=='Mexico'){ formuC.options[i].disabled=false; //se coloca un disabled=false acá para que en caso de cambiar de pais se rehabiliten las otras ciudades
                if(formuC.options[i].value!='Mexicodf'&&formuC.options[i].value!='Guadalajara'){formuC.options[i].disabled=true;}
            }
            else if(esto.value=='Espania'){ formuC.options[i].disabled=false;
                if(formuC.options[i].value!='Madrid'&&formuC.options[i].value!='Barcelona'){formuC.options[i].disabled=true;}
            }
            else if(esto.value=='Peru'){ formuC.options[i].disabled=false;
                if(formuC.options[i].value!='Lima'&&formuC.options[i].value!='Trujillo'){formuC.options[i].disabled=true;}
            }
            else if(esto.value=='Colombia'){ formuC.options[i].disabled=false;
                if(formuC.options[i].value!='Bogota'&&formuC.options[i].value!='Cali'){formuC.options[i].disabled=true;}
            }
        }
    }

    function selecCiudad(){

        var esto = this;

        for(var i=0; i<formuP.options.length;i++){
            if(esto.value=='Mexicodf'||esto.value=='Guadalajara'){
                if(formuP.options[i].value=='Mexico'){formuP.options[i].selected=true; formuP.options[i].disabled=false;}
                else{formuP.options[i].disabled=true;}
            } // se pone un disabled=false para que se inhabiliten los paises no autoseleccionados
            else if(esto.value=='Madrid'||esto.value=='Barcelona'){
                if(formuP.options[i].value=='Espania'){formuP.options[i].selected=true; formuP.options[i].disabled=false;}
                else{formuP.options[i].disabled=true;}
            }
            else if(esto.value=='Lima'||esto.value=='Trujillo'){
                if(formuP.options[i].value=='Peru'){formuP.options[i].selected=true; formuP.options[i].disabled=false;}
                else{formuP.options[i].disabled=true;}
            }
            else if(esto.value=='Bogota'||esto.value=='Cali'){
                if(formuP.options[i].value=='Colombia'){formuP.options[i].selected=true; formuP.options[i].disabled=false;}
                else{formuP.options[i].disabled=true;}
            }       
        }
    }

    function recarga(){window.location.reload();}
   
</script>
</head>

<body><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3>

                <div class="estiloForm">

                               <form name ="formulario" method="get">
                               <label>País</label><select id="pais" name="pais">
                               <option value="">Elija opción</option><option value="Mexico">México</option>
                               <option value="Espania">España</option><option value="Peru">Perú</option>
                               <option value="Colombia">Colombia</option>
                               </select><br/>

                               <label>Ciudad</label><select id="ciudad" name="ciudad">

                               <option value="">Elija opción</option><option value="Mexicodf">México D.F.</option>
                               <option value="Guadalajara">Guadalajara</option><option value="Madrid">Madrid</option>
                               <option value="Barcelona">Barcelona</option><option value="Lima">Lima</option>
                               <option value="Trujillo">Trujillo</option><option value="Bogota">Bogotá</option>
                               <option value="Cali">Cali</option>

                               </select><br/>

                               <input class="botonFormulario" type="submit" value="Enviar"/>
                               <input class="botonFormulario" type="reset" value="Cancelar"/>

                </form>

                </div>
</body></html>

Gracias y saludos!!

2
Hola, paso a dejar mi solución al ejercicio propuesto del curso de programación JavaScript desde cero

Citar
EJERCICIO

Crea una página web que al ser invocada muestre un mensaje “Hemos cambiado de ubicación esta página. En breves momentos será redireccionado…” junto a una cuenta atrás que muestre 5, 4, 3, 2, 1 (correspondiente a 5 segundos). Tras transcurrir 5 segundos y mostrarse la cuenta atrás, el usuario debe ser redireccionada a la url http://aprenderaprogramar.com. Para realizar este ejercicio debes usar la propiedad window.location junto con funciones que permitan el retardo en la ejecución vistas en entregas anteriores del curso.


Código: [Seleccionar]
<!DOCTYPE html>

<html><head> <title>Curso JavaScript aprenderaprogramar.com</title><meta charset="utf-8">

<style type="text/css">

body {font-family: sans-serif; text-align:center; }

div p {border-style:solid; margin: 30px; padding:25px; display:inline-block; background-color: yellow; border-radius: 5px;}
</style>

<script type="text/javascript">

var contador = 5;

function mensP(){
    var nodoP = document.querySelector("p");     

    if(contador==0){window.location.assign('http://aprenderaprogramar.com'); }
    //Caso base: fin de la recursion, cambio locación
    else{nodoP.innerText = "Hemos cambiado de ubicación esta página. En breves momentos será redireccionado… "+contador;
        contador-=1; setTimeout( mensP,1000);}
    // genero una recursion para rellamar mensP cada nuevo valor de la variable contador usando temporizador setTimeout
}
</script>
</head>
<body onload="mensP()">
<div>
    <p> </p>
</div>
</body></html>
Saludos y muchas gracias!!

3
Es la primera resolución de un ejercicio que posteo del curso de JavaScript de aprenderaprogramar que vengo siguiendo, no posteé nada antes porque estaba esperando este tipo de ejercicios integradores, en éste aplico todo lo se ha venido viendo hasta ahora de forma intencional para mi propia práctica, hice lo que se pedia y un poco mas a modo de autodesafío y quizá, llegar a reciclarlo en el futuro. Espero este correcto, y si no, pues tengo tengo todas las ganas de aprender asi que bienvenidas las correcciones.

Gracias por esta increible página, increiblemente clara la información, y el plan de formación es grandioso, y lo mejor libre de acceso. <3<3<3. Gracias, gracias, gracias!!

Código: [Seleccionar]
<!DOCTYPE html>
<html><head> <title>Curso JavaScript aprenderaprogramar.com</title>
<meta charset="utf-8" name="viewport" content="width=device-width,initial-scale=1.0"/>
<style type="text/css">
@media (min-width : 100px) and  (max-width : 4080px) {
body {font-family: Geneva, Tahoma, "Nimbus Sans L", sans-serif; text-align: center;}
h1 {display: flex; margin: auto; justify-content: center;}
#tecla {border-style:solid; margin: auto; height: 500px; width: 400px; background-color: lightgrey; border-radius: 5px; display: flex; justify-content: center; font-size: 25px;}
th, td {height: 43px; width: 42px; border-collapse: collapse; border-radius: 5px;}
</style>
<script type="text/javascript">
function nCalendarioH() {
this.fecha = new Date();
this.año = this.fecha.getFullYear();
this.mes = this.fecha.getMonth();
this.dia = this.fecha.getDay();
this.hoy = this.fecha.getDate();}

nCalendarioH.prototype.mesDia = function(){
var mesCal = document.getElementById("mes");
if (this.mes == 0) {mesCal.innerHTML = "ENERO DE " + this.año;}
else if (this.mes == 1) {mesCal.innerHTML = "FEBRERO DE " + this.año;}
else if (this.mes == 2) {mesCal.innerHTML = "MARZO DE " + this.año;}
else if (this.mes == 3) {mesCal.innerHTML = "ABRIL DE " + this.año;}
else if (this.mes == 4) {mesCal.innerHTML = "MAYO DE " + this.año;}
else if (this.mes == 5) {mesCal.innerHTML = "JUNIO DE " + this.año;}
else if (this.mes == 6) {mesCal.innerHTML = "JULIO DE " + this.año;}
else if (this.mes == 7) {mesCal.innerHTML = "AGOSTO DE " + this.año;}
else if (this.mes == 8) {mesCal.innerHTML = "SEPTIEMBRE DE " + this.año;}
else if (this.mes == 9) {mesCal.innerHTML = "OCTUBRE DE " + this.año;}
else if (this.mes == 10) {mesCal.innerHTML = "NOVIEMBRE DE " + this.año;}
else {mesCal.innerHTML = "DICIEMBRE DE " + this.año;}
}
nCalendarioH.prototype.cal = function(){
var diaM = [0,1,2,3,4,5,6];
var diaH = diaM[this.dia];
var mesD = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
var diasPostF = mesD.slice(0, 27+1);
var diasPostFB = mesD.slice(0, 28+1);
var diasPostMC = mesD.slice(0, 29+1);
var diasPostML = mesD.slice(0, 30+1);
var fila1_6 = document.getElementsByTagName("td");
var semD = 5;
var conMarcV = semD-1;

function bucleMeses(semDi) {
if (this.año % 4 == 0 && this.mes == 1){
for (var j=0; j<=diasPostFB.length; j++){fila1_6[j+semDi].innerHTML = diasPostFB[j]==undefined?"":diasPostFB[j];}}
else if (this.año % 4 != 0 && this.mes == 1){
for (var j=0; j<=diasPostF.length; j++){fila1_6[j+semDi].innerHTML = diasPostF[j]==undefined?"":diasPostF[j];}}
else if(this.mes==3||this.mes==5||this.mes==8||this.mes==10){
for (var j=0; j<=diasPostMC.length; j++){fila1_6[j+semDi].innerHTML = diasPostMC[j]==undefined?"":diasPostMC[j];}}
else{
for (var j=0; j<=diasPostML.length; j++){fila1_6[j+semDi].innerHTML = diasPostML[j]==undefined?"":diasPostML[j];}}
fila1_6[this.hoy+semDi-1].style.backgroundColor='lightblue';}

do{ for (var i=(this.hoy-1);i>=0;i--) {
if(mesD[i] ==1){
switch(diaH){
case 0: semD +=1; bucleMeses.call(this, semD); break;
case 1: semD-=5; bucleMeses.call(this, semD); break;
case 2: semD-=4;bucleMeses.call(this, semD);break;
case 3: semD-=3;bucleMeses.call(this, semD);break;
case 4: semD-=2;bucleMeses.call(this, semD);break;
case 5: semD-=1;bucleMeses.call(this, semD);break;
case 6: bucleMeses.call(this, semD);break;}}
if(diaH==0){diaH+=7;}
diaH-=1;}}while(mesD>0);}

function nCalendarioES(eFecha,eMes,eAño) {
this.fecha2 = new Date();
this.fecha2.setDate(eFecha);
this.fecha2.setMonth(eMes-1);
this.fecha2.setFullYear(eAño);
this.año = this.fecha2.getFullYear();
this.mes = this.fecha2.getMonth();
this.dia = this.fecha2.getDay();
this.hoy = this.fecha2.getDate();}

nCalendarioES.prototype = new nCalendarioH();

window.onload =
function objCalendario() {
alert("Introduzca una fecha para ver el calendario de esa fecha.\nSi no introduce nada, verá según la fecha actual.")
var fechaI = prompt("introduzca el día: ");
var mesI = prompt("introduzca el mes: ");
var añoI = prompt("introduzca el año: ");
fechaI = Number(fechaI);
mesI = Number(mesI);
añoI = Number(añoI);

if(fechaI||mesI||añoI){var defCal2 = new nCalendarioES(fechaI,mesI,añoI);defCal2.mesDia(); defCal2.cal();}
else{ var defCal = new nCalendarioH();defCal.mesDia();defCal.cal();}}


</script>
</head>
<body >
<h1>Calendario</h1>
        <div id="tecla">
<table border="1" cellpadding="4" align="center">
  <caption id="mes" style="font-size: 25px; margin: 30px; "> </caption>
     <tr>
      <th  colspan="1">Lu</th>
      <th  colspan="2">Ma</th>
      <th  colspan="3">Mi</th>
      <th  colspan="4">Ju</th>
      <th  colspan="5">Vi</th>
      <th  colspan="6">Sa</th>
      <th  colspan="7">Do</th>
     </tr>
    <tbody>   
      <tr id="fila1">
      <td colspan="1" class="lu"> </td>
      <td colspan="2" class="ma"> </td>
      <td colspan="3" class="mi"> </td>
      <td colspan="4" class="ju"> </td>
      <td colspan="5" class="vi"> </td>
      <td colspan="6" class="sa"> </td>
      <td colspan="7" class="do"> </td>
      </tr>   
      <tr id="fila2">
      <td colspan="1" class="lu"> </td>
      <td colspan="2" class="ma"> </td>
      <td colspan="3" class="mi"> </td>
      <td colspan="4" class="ju"> </td>
      <td colspan="5" class="vi"> </td>
      <td colspan="6" class="sa"> </td>
      <td colspan="7" class="do"> </td>
      </tr>   
      <tr id="fila3">
      <td colspan="1" class="lu"> </td>
      <td colspan="2" class="ma"> </td>
      <td colspan="3" class="mi"> </td>
      <td colspan="4" class="ju"> </td>
      <td colspan="5" class="vi"> </td>
      <td colspan="6" class="sa"> </td>
      <td colspan="7" class="do"> </td>
      </tr>   
      <tr id="fila4">
      <td colspan="1" class="lu"> </td>
      <td colspan="2" class="ma"> </td>
      <td colspan="3" class="mi"> </td>
      <td colspan="4" class="ju"> </td>
      <td colspan="5" class="vi"> </td>
      <td colspan="6" class="sa"> </td>
      <td colspan="7" class="do"> </td>
      </tr>   
      <tr id="fila5">
      <td colspan="1" class="lu"> </td>
      <td colspan="2" class="ma"> </td>
      <td colspan="3" class="mi"> </td>
      <td colspan="4" class="ju"> </td>
      <td colspan="5" class="vi"> </td>
      <td colspan="6" class="sa"> </td>
      <td colspan="7" class="do"> </td>
      </tr>
      <tr id="fila6">
      <td colspan="1" class="lu"> </td>
      <td colspan="2" class="ma"> </td>
      <td colspan="3" class="mi"> </td>
      <td colspan="4" class="ju"> </td>
      <td colspan="5" class="vi"> </td>
      <td colspan="6" class="sa"> </td>
      <td colspan="7" class="do"> </td>
      </tr>    
    </tbody>      
  </table>
 </div>
</body>
</html>

Saludos!!

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".