Ingeniería en Nanotecnología
esta carrera en el ITESO
Realizas prácticas con tecnología de punta en el Laboratorio de Nanocaracterización y Análisis Espectral, único en la región, además del Laboratorio de Nanotecnología equipado con microscopía de fuerza atómica, electrónica de barrido, sputtering (pulverización catódica) y evaporadora.
Participas desde los primeros semestres en proyectos reales con enfoque en salud, medio ambiente y alimentos, aplicando la nanotecnología a través de rutas de especialización como materiales avanzados, energía o electrónica.
Comprendes el comportamiento de los materiales a escala nanométrica, diseñas estructuras con propiedades específicas para mejorar su desempeño y desarrollas herramientas para gestionar proyectos de innovación y emprendimiento nanotecnológico.
Desarrollo profesional
Crea tu propia empresa y genera oportunidades de empleo con un enfoque de los negocios centrado en las personas.
- Desarrolla tu idea y modelo de negocio con el acompañamiento de una consultoría especializada.
- Aprende a recabar, interpretar y utilizar información valiosa para el arranque y el sostenimiento de tu empresa.
- Echa a andar proyectos de emprendimiento de economía social.
Centro para la Gestión de la Innovación y la Tecnología
Explora un ecosistema de innovación y competitividad donde puedes desarrollar proyectos de base tecnológica en sectores estratégicos como electrónica, energías verdes, tecnologías de información y farmacéutica, mientras generas un impacto positivo en la sociedad. Al acercarte a la Incubadora de Empresas Tecnológicas podrás contar con los siguientes beneficios:
- Aplicación del conocimiento y gestión de proyectos tecnológicos.
- Vinculación efectiva con instituciones públicas y privadas y organizaciones civiles, entre otros actores de la economía.
- Posibilidades de contribuir al desarrollo económico, social y ambiental.
Centro Universidad Empresa
Conoce los servicios que te brinda el ITESO para tu inserción en el mundo laboral.
- Haz tus prácticas profesionales y comienza a forjar tu experiencia y tu trayectoria laboral.
- Vincúlate con empresas nacionales e internacionales a través de la bolsa de trabajo o de las ferias del empleo y el emprendimiento.
- Participa en redes profesionales que abren para ti escenarios de colaboración.
- Desarrolla tu currículum y tu portafolios de trabajo con asesoría personalizada.
Coordinación de la carrera
Dra. Elsie Evelyn Araujo Palomo
Doctora en Ciencia e Ingeniería de Materiales por la Universidad Autónoma de San Luis Potosí, especializada en materiales avanzados y nanomagnetismo. Sus campos de especialidad son la síntesis de nanoestructuras por métodos químicos y deposición electroquímica, la electrónica flexible y vestible, el estudio de propiedades magnéticas y eléctricas en nanoestructuras y el estudio y fabricación de sensores nanoestructurados.
Es la responsable técnica de los proyectos “Fabricación de biosensores nanoestructurados no invasivos para el monitoreo periódico de glucosa para la detección oportuna de diabetes mellitus” y “Modelado y optimización de celdas electrolíticas microbianas para la producción de hidrógeno a partir de aguas residuales agroindutriales” del ITESO.
The following has evaluated to null or missing:
==> FormularioEC.telefonocelular [in template "97#123#7417254" at line 75, column 81]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${FormularioEC.telefonocelular.dataer... [in template "97#123#7417254" at line 75, column 79]
---- 1<#assign groupid = themeDisplay.getLayout().getGroupId()> 2<#assign url = themeDisplay.getURLCurrent()> 3<#assign urlt = themeDisplay.getLayout().getFriendlyURL()> 4<#assign httpOrigReq = portalUtil.getOriginalServletRequest(request)> 5<#assign utm_source = ""> 6<#assign utm_medium = ""> 7<#assign utm_campaign = ""> 8<#assign utm_term = ""> 9<#assign utm_content = ""> 10 11 <#if (httpOrigReq.getParameter("utm_source")?has_content )?c == "true" > 12 <#assign utm_source = httpOrigReq.getParameter("utm_source")?html/> 13 14 </#if> 15 <#if (httpOrigReq.getParameter("utm_medium")?has_content )?c == "true" > 16 <#assign utm_medium = httpOrigReq.getParameter("utm_medium")?html/> 17 18 </#if> 19 <#if (httpOrigReq.getParameter("utm_campaign")?has_content )?c == "true" > 20 <#assign utm_campaign = httpOrigReq.getParameter("utm_campaign")?html/> 21 22 </#if> 23 24 <#if (httpOrigReq.getParameter("utm_term")?has_content )?c == "true" > 25 <#assign utm_term = httpOrigReq.getParameter("utm_term")?html/> 26 27 </#if> 28 <#if (httpOrigReq.getParameter("utm_content")?has_content )?c == "true" > 29 <#assign utm_content = httpOrigReq.getParameter("utm_content")?html/> 30 31 </#if> 32 33 34<form id="form_iteso_licenciaturas" role="form" data-toggle="validator" action = "${FormularioEC.actionlicenciaturas.getData()}" method="post" enctype="application/x-www-form-urlencoded"> 35 <div class="row"> 36 37 38 <input type="hidden" name="utm_source" value = "${utm_source}"> 39 <input type="hidden" name="utm_medium" value = "${utm_medium}"> 40 <input type="hidden" name="utm_campaign" value = "${utm_campaign}"> 41 <input type="hidden" name="utm_term" value = "${utm_term}"> 42 <input type="hidden" name="utm_content" value = "${utm_content}"> 43 <input type="hidden" id="gclid_field" name="gclid_field" value = " "> 44 45 46 <div style="position:absolute; left:-9999px;" type="hidden"> 47 <label for="company">Empresa</label> 48 <input type="text" id="company" name="company"> 49 </div> 50 51 <div class="col col-12"> 52 <div class="form-group"> 53 <input type="text" name="nombres" data-error="${FormularioEC.Nombre.dataerrornombre.getData()}" required="required" placeholder="${FormularioEC.Nombre.getData()}" class="form_ipt"> 54 <!-- Error --> 55 <div class="help-block with-errors"></div> 56 </div> 57 </div> 58 59 <div class="col col-12 col-md-6"> 60 <div class="form-group"> 61 <input type="text" name="PrimerApellido" data-error="${FormularioEC.PrimerApellido.getData()}" required="required" placeholder="${FormularioEC.PrimerApellido.getData()}" class="form_ipt"> 62 <!-- Error --> 63 <div class="help-block with-errors"></div> 64 </div> 65 </div> 66 67 <div class="col col-12 col-md-6"> 68 <div class="form-group"> 69 <input type="text" name="SegundoApellido" placeholder="${FormularioEC.SegundoApellido.getData()}" class="form_ipt"> 70 </div> 71 </div> 72 73 <div class="col col-12"> 74 <div class="form-group"> 75 <input type="text" name="celular" data-error="${FormularioEC.telefonocelular.dataerrorcelular.getData()}" required="required" placeholder="${FormularioEC.telefonocelular.getData()}" class="form_ipt"> 76 <!-- Error --> 77 <div class="help-block with-errors"></div> 78 <div class="help-block with-errors error-celular-onlynumber">${FormularioEC.telefonocelular.dataerrorcelularonlynumbers.getData()}</div> 79 <div class="help-block with-errors error-celular-max">${FormularioEC.telefonocelular.dataerrorcelularmax.getData()}</div> 80 </div> 81 </div> 82 83 <div class="col col-12"> 84 <div class="form-group"> 85 <input type="text" name="email" data-error="${FormularioEC.Email.dataerroremail.getData()}" required="required" placeholder="${FormularioEC.Email.getData()}" class="form_ipt"> 86 <!-- Error --> 87 <div class="help-block with-errors"></div> 88 <!--<div class="help-block with-errors"></div>--> 89 </div> 90 </div> 91 92 <div class="col col-12"> 93 <div class="form-group selectdiv"> 94 <select aria-label="carreraInteres" name="carreraInteres" id="carreraInteres" multiple multiselect-search="true" multiselect-max-items="3" onchange="$.fn.changemulti(this.selectedOptions)" class="form_ipt"> 95 <!--<option value="" disabled selected hidden>${FormularioEC.carrera.getData()}</option>--> 96 <option value="Ingenieria Ambiental y Tecnologias Sustentables">Ingeniería Ambiental y Tecnologías Sustentables</option> 97 <option value="Ingenieria Civil">Ingeniería Civíl</option> 98 <option value="Ingenieria de Alimentos">Ingeniería de Alimentos</option> 99 <option value="Ingenieria Electronica">Ingeniería Electrónica</option> 100 <option value="Ingenieria en Biotecnologia">Ingeniería en Biotecnología</option> 101 <option value="Ingenieria en Ciberseguridad">Ingeniería en Ciberseguridad</option> 102 <option value="Ingenieria en Desarrollo de Software">Ingeniería en Desarrollo de Software</option> 103 <option value="Ingenieria en Inteligencia Artificial">Ingeniería en Inteligencia Artificial</option> 104 <!--<option value="Ingeniería en Empresas de Servicio">Ingeniería en Empresas de Servicio</option>--> 105 <option value="Ingenieria en Mecatronica">Ingeniería en Mecatrónica</option> 106 <option value="Ingenieria en Nanotecnologia">Ingeniería en Nanotecnología</option> 107 <option value="Ingenieria en Negocios y Servicios Digitales">Ingeniería en Negocios y Servicios Digitales</option> 108 <option value="Ingenieria en Sistemas Computacionales">Ingeniería en Sistemas Computacionales</option> 109 <option value="Ingenieria en Sistemas Digitales Embebidos">Ingeniería en Sistemas Digitales Embebidos</option> 110 <option value="Ingenieria Financiera">Ingeniería Financiera</option> 111 <option value="Ingenieria Industrial">Ingeniería Industrial</option> 112 <option value="Ingenieria Mecanica">Ingeniería Mecánica</option> 113 <option value="Ingenieria Quimica">Ingeniería Química</option> 114 <option value="Ingenieria y Ciencia de Datos">Ingeniería y Ciencia de Datos</option> 115 <option value="Licenciatura en Administracion de Empresas y Emprendimiento">Licenciatura en Administración de Empresas y Emprendimiento</option> 116 <option value="Licenciatura en Arquitectura">Licenciatura en Arquitectura</option> 117 <option value="Licenciatura en Arte y Creacion">Licenciatura en Arte y Creación</option> 118 <option value="Licenciatura en Ciencias de la Comunicacion">Licenciatura en Ciencias de la Comunicación</option> 119 <option value="Licenciatura en Ciencias de la Educacion">Licenciatura en Ciencias de la Educación</option> 120 <option value="Licenciatura en Comercio y Negocios Globales">Licenciatura en Comercio y Negocios Globales</option> 121 <option value="Licenciatura en Comunicacion y Artes Audiovisuales">Licenciatura en Comunicación y Artes Audiovisuales</option> 122 <option value="Licenciatura en Contaduria y Gobierno Corporativo">Licenciatura en Contaduría y Gobierno Corporativo</option> 123 <option value="Licenciatura en Derecho">Licenciatura en Derecho</option> 124 <option value="Licenciatura en Desarrollo Inmobiliario Sustentable">Licenciatura en Desarrollo Inmobiliario Sustentable</option> 125 <option value="Licenciatura en Diseño">Licenciatura en Diseño</option> 126 <option value="Licenciatura en Diseño de Indumentaria y Moda">Licenciatura en Diseño de Indumentaria y Moda</option> 127 <option value="Licenciatura en Diseño Urbano y Arquitectura del Paisaje">Licenciatura en Diseño Urbano y Arquitectura del Paisaje</option> 128 <option value="Licenciatura en Filosofia y Ciencias Sociales">Licenciatura en Filosofía y Ciencias Sociales</option> 129 <option value="Licenciatura en Finanzas">Licenciatura en Finanzas</option> 130 <option value="Licenciatura en Gestion Cultural">Licenciatura en Gestión Cultural</option> 131 <!--<option value="Licenciatura en Gestion Publica">Licenciatura en Gestión Pública</option>--> 132 <option value="Licenciatura en Hospitalidad y Turismo">Licenciatura en Hospitalidad y Turismo</option> 133 <option value="Licenciatura en Mercadotecnia y Direccion Comercial">Licenciatura en Mercadotecnia y Dirección Comercial</option> 134 <option value="Licenciatura en Negocios y Mercados Digitales">Licenciatura en Negocios y Mercados Digitales</option> 135 <option value="Licenciatura en Nutricion">Licenciatura en Nutrición</option> 136 <option value="Licenciatura en Periodismo y Comunicacion Publica">Licenciatura en Periodismo y Comunicación Pública</option> 137 <option value="Licenciatura en Psicologia">Licenciatura en Psicología</option> 138 <option value="Licenciatura en Publicidad y Comunicacion Estrategica">Licenciatura en Publicidad y Comunicación Estratégica</option> 139 <option value="Licenciatura en Recursos Humanos y Talento Organizacional">Licenciatura en Recursos Humanos y Talento Organizacional</option> 140 <option value="Licenciatura en Relaciones Internacionales">Licenciatura en Relaciones Internacionales</option> 141 <option value="Licenciatura en Traduccion e Interpretacion">Licenciatura en Traducción e Interpretación</option> 142 </select> 143 <!-- Error --> 144 <div class="help-block with-errors error-multi">${FormularioEC.carrera.DataErrorCarrera.getData()}</div> 145 </div> 146 </div> 147 148 <div class="col col-12"> 149 <div class="form-group selectdiv"> 150 <select name="ingreso" data-error="${FormularioEC.ingreso.DataErrorIngreso.getData()}" required="" class="form_ipt"> 151 <option value="" disabled="" selected="" hidden="">Año en que ingresas a la Universidad *</option> 152 <option value="Otoño 2026 (Agosto)">Otoño 2026 (Agosto)</option> 153 <option value="Primavera 2027 (Enero)">Primavera 2027 (Enero)</option> 154 <option value="Otoño 2027 (Agosto)">Otoño 2027 (Agosto)</option> 155 </select> 156 <!-- Error --> 157 <div class="help-block with-errors"></div> 158 </div> 159 </div> 160 161 162 <div class="col col-12"> 163 <div class="form-group"> 164 <input class= "form_checkbox" type="checkbox" required="required" data-error="${FormularioEC.politicas.DataErrorPoliticas.getData()}"><span class="form_text_checkbox"><span>${FormularioEC.sitecaptcha.AceptaPolitica.getData()}</span> <a href="${FormularioEC.politicas.urlpoliticas.getData()}" class="privacidad">${FormularioEC.politicas.getData()}</a></span> 165 <!-- Error --> 166 <div class="help-block with-errors"></div> 167 </div> 168 </div> 169 170 <div class="col col-12"> 171 <div class="form-group"> 172 <div class="g-recaptcha" data-sitekey="6Ld2htMpAAAAAIgAepbqiaKwLJl-kf5E6U97mD0_" data-callback="verifyRecaptchaCallback" data-expired-callback="expiredRecaptchaCallback"></div> 173 <input class="form-control d-none" data-recaptcha="true" required data-error=${FormularioEC.sitecaptcha.DataErrorCaptcha.getData()}> 174 <div class="help-block with-errors"></div> 175 </div> 176 </div> 177 </div> 178 179 <div class="form-group"> 180 <button type="submit" class="btn form_button btn-block"><i class="fal fa-plus-circle form_icon"></i>${FormularioEC.submitform.getData()}</button> 181 </div> 182</form> 183<style> 184.help-block { 185 color: #f00; 186} 187</style> 188<#assign lang = themeDisplay.getLocale()> 189 190<script src="https://www.google.com/recaptcha/api.js" async defer></script> 191 192<script> 193 194$(function() { 195console.log( "ready!" ); 196var style = document.createElement('style'); 197style.setAttribute("id","multiselect_dropdown_styles"); 198style.innerHTML = ` 199.multiselect-dropdown{ 200 width: 100%; 201 -webkit-appearance: none; 202 padding: 18px 28px 21px 28px; 203 border-radius: 14px; 204 box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.15); 205 background-color: #fff; 206 border: none; 207 outline: none; 208 color: #bcbcbd !important; 209 font-size: calc(18px + (21 - 18) * ((100vw - 320px) / 1600)); 210 font-weight: 300; 211 font-stretch: normal; 212 font-style: normal; 213 letter-spacing: normal; 214 text-align: left; 215 white-space: normal; 216} 217.multiselect-dropdown span.optext, .multiselect-dropdown span.placeholder-multi{ 218 margin-right:0.5em; 219 margin-bottom:2px; 220 padding:1px 0; 221 border-radius: 4px; 222 display:inline-block; 223} 224.multiselect-dropdown span.optext{ 225 background-color:lightgray; 226 padding:1px 0.75em; 227} 228.multiselect-dropdown span.optext .optdel { 229 float: right; 230 margin: 0 -6px 1px 5px; 231 font-size: 0.7em; 232 margin-top: 2px; 233 cursor: pointer; 234 color: #666; 235} 236.multiselect-dropdown span.optext .optdel:hover { color: #c66;} 237.multiselect-dropdown span.placeholder-multi{ 238 color:#c1b2b2; 239} 240.multiselect-dropdown-list-wrapper{ 241 width: max-content; 242 box-shadow: gray 0 3px 8px; 243 z-index: 100; 244 padding:2px; 245 border-radius: 4px; 246 border: solid 1px #ced4da; 247 display: none; 248 margin: -1px; 249 position: absolute; 250 top:0; 251 left: 0; 252 right: 0; 253 background: white; 254} 255.multiselect-dropdown-list-wrapper .multiselect-dropdown-search{ 256 margin-bottom:5px; 257} 258.multiselect-dropdown-list{ 259 padding:2px; 260 height: 15rem; 261 overflow-y:auto; 262 overflow-x: hidden; 263} 264.multiselect-dropdown-list::-webkit-scrollbar { 265 width: 6px; 266} 267.multiselect-dropdown-list::-webkit-scrollbar-thumb { 268 background-color: #bec4ca; 269 border-radius:3px; 270} 271 272.multiselect-dropdown-list div{ 273 padding: 5px; 274} 275.multiselect-dropdown-list input{ 276 height: 1.15em; 277 width: 1.15em; 278 margin-right: 0.35em; 279} 280.multiselect-dropdown-list div.checked{ 281} 282.multiselect-dropdown-list div:hover{ 283 background-color: #ced4da; 284} 285.multiselect-dropdown span.maxselected {width:100%;} 286.multiselect-dropdown-all-selector {border-bottom:solid 1px #999;} 287`; 288document.head.appendChild(style); 289 290function MultiselectDropdown(options){ 291 var config={ 292 search:true, 293 height:'15rem', 294 placeholder:'${FormularioEC.carrera.getData()}', 295 txtSelected: '${lang}'== 'en_US'?'selected':'seleccionado', 296 txtAll:'All', 297 txtRemove: '${lang}'== 'en_US'?'Remove':'Quitar', 298 txtSearch: '${lang}'== 'en_US'?'Search':'Buscar', 299 ...options 300 }; 301 function newEl(tag,attrs){ 302 var e=document.createElement(tag); 303 if(attrs!==undefined) Object.keys(attrs).forEach(k=>{ 304 if(k==='class') { Array.isArray(attrs[k]) ? attrs[k].forEach(o=>o!==''?e.classList.add(o):0) : (attrs[k]!==''?e.classList.add(attrs[k]):0)} 305 else if(k==='style'){ 306 Object.keys(attrs[k]).forEach(ks=>{ 307 e.style[ks]=attrs[k][ks]; 308 }); 309 } 310 else if(k==='text'){attrs[k]===''?e.innerHTML=' ':e.innerText=attrs[k]} 311 else e[k]=attrs[k]; 312 }); 313 return e; 314 } 315 316 317 document.querySelectorAll("select[multiple]").forEach((el,k)=>{ 318 319 var div=newEl('div',{class:'multiselect-dropdown',style:{width:'100%',padding:config.style?.padding??''}}); 320 el.style.display='none'; 321 el.parentNode.insertBefore(div,el.nextSibling); 322 var listWrap=newEl('div',{class:'multiselect-dropdown-list-wrapper'}); 323 var list=newEl('div',{class:'multiselect-dropdown-list',style:{height:config.height}}); 324 var search=newEl('input',{class:['multiselect-dropdown-search'].concat([config.searchInput?.class??'form-control']),style:{width:'100%',display:el.attributes['multiselect-search']?.value==='true'?'block':'none'},placeholder:config.txtSearch}); 325 listWrap.appendChild(search); 326 div.appendChild(listWrap); 327 listWrap.appendChild(list); 328 329 el.loadOptions=()=>{ 330 list.innerHTML=''; 331 332 if(el.attributes['multiselect-select-all']?.value=='true'){ 333 var op=newEl('div',{class:'multiselect-dropdown-all-selector'}) 334 var ic=newEl('input',{type:'checkbox'}); 335 op.appendChild(ic); 336 op.appendChild(newEl('label',{text:config.txtAll})); 337 338 op.addEventListener('click',()=>{ 339 op.classList.toggle('checked'); 340 op.querySelector("input").checked=!op.querySelector("input").checked; 341 342 var ch=op.querySelector("input").checked; 343 list.querySelectorAll(":scope > div:not(.multiselect-dropdown-all-selector)") 344 .forEach(i=>{if(i.style.display!=='none'){i.querySelector("input").checked=ch; i.optEl.selected=ch}}); 345 346 el.dispatchEvent(new Event('change')); 347 }); 348 ic.addEventListener('click',(ev)=>{ 349 ic.checked=!ic.checked; 350 }); 351 el.addEventListener('change', (ev)=>{ 352 let itms=Array.from(list.querySelectorAll(":scope > div:not(.multiselect-dropdown-all-selector)")).filter(e=>e.style.display!=='none') 353 let existsNotSelected=itms.find(i=>!i.querySelector("input").checked); 354 if(ic.checked && existsNotSelected) ic.checked=false; 355 else if(ic.checked==false && existsNotSelected===undefined) ic.checked=true; 356 }); 357 358 list.appendChild(op); 359 } 360 361 Array.from(el.options).map(o=>{ 362 var op=newEl('div',{class:o.selected?'checked':'',optEl:o}) 363 var ic=newEl('input',{type:'checkbox',checked:o.selected}); 364 op.appendChild(ic); 365 op.appendChild(newEl('label',{text:o.text})); 366 367 op.addEventListener('click',()=>{ 368 op.classList.toggle('checked'); 369 op.querySelector("input").checked=!op.querySelector("input").checked; 370 op.optEl.selected=!!!op.optEl.selected; 371 el.dispatchEvent(new Event('change')); 372 }); 373 ic.addEventListener('click',(ev)=>{ 374 ic.checked=!ic.checked; 375 }); 376 o.listitemEl=op; 377 list.appendChild(op); 378 }); 379 div.listEl=listWrap; 380 381 div.refresh=()=>{ 382 div.querySelectorAll('span.optext, span.placeholder-multi').forEach(t=>div.removeChild(t)); 383 var sels=Array.from(el.selectedOptions); 384 if(sels.length>(el.attributes['multiselect-max-items']?.value??5)){ 385 div.appendChild(newEl('span',{class:['optext','maxselected'],text:sels.length+' '+config.txtSelected})); 386 } 387 else{ 388 sels.map(x=>{ 389 var c=newEl('span',{class:'optext',text:x.text, srcOption: x}); 390 if((el.attributes['multiselect-hide-x']?.value !== 'true')) 391 c.appendChild(newEl('span',{class:'optdel',text:'x',title:config.txtRemove, onclick:(ev)=>{c.srcOption.listitemEl.dispatchEvent(new Event('click'));div.refresh();ev.stopPropagation();}})); 392 393 div.appendChild(c); 394 }); 395 } 396 if(0==el.selectedOptions.length) div.appendChild(newEl('span',{class:'placeholder-multi',text:el.attributes['placeholder']?.value??config.placeholder})); 397 }; 398 div.refresh(); 399 } 400 el.loadOptions(); 401 402 search.addEventListener('input',()=>{ 403 list.querySelectorAll(":scope div:not(.multiselect-dropdown-all-selector)").forEach(d=>{ 404 var txt=d.querySelector("label").innerText.toUpperCase(); 405 d.style.display=txt.includes(search.value.toUpperCase())?'block':'none'; 406 }); 407 }); 408 409 div.addEventListener('click',()=>{ 410 div.listEl.style.display='block'; 411 search.focus(); 412 search.select(); 413 }); 414 415 document.addEventListener('click', function(event) { 416 if (!div.contains(event.target)) { 417 listWrap.style.display='none'; 418 div.refresh(); 419 } 420 }); 421 }); 422} 423 424window.addEventListener('load',()=>{ 425 MultiselectDropdown(window.MultiselectDropdownOptions); 426}); 427 428 //submit 429 var v_Data; 430 $.fn.changemulti=function(data) { 431 v_Data = data; 432 } 433 434 $( "#form_iteso_licenciaturas" ).on( "submit", function( e ) { 435 //Ocultar todos los mensajes 436 $.fn.hideMsgError(); 437 438 let isSubmit = true; 439 let is_email = true; 440 let is_numberTel = true; 441 let isForm = $.fn.validateForm(); 442 443 if(isForm){ 444 let isEmail = IsEmail($("input[name=email]").val()); 445 let is_numberTel = isNumberTel(); 446 447 if(!isEmail){ 448 $('.error-invalid-email').show(); 449 is_email = false; 450 } 451 452 if(is_email && is_numberTel) 453 return; 454 } 455 e.preventDefault(); 456 }); 457 458 $.fn.hideMsgError=function(){ 459 $('.error-email').hide(); 460 $('.error-invalid-email').hide(); 461 $('.error-nombres').hide(); 462 $('.error-PrimerApellido').hide(); 463 $('.error-celular').hide(); 464 $('.error-celular-onlynumber').hide(); 465 $('.error-celular-max').hide(); 466 $('.error-multi').hide(); 467 } 468 469 $.fn.validateForm=function(){ 470 let submit; 471 let val_email = true; 472 let val_nombres = true; 473 let val_APaterno = true; 474 let val_celular = true; 475 let multi = true; 476 477 try { 478 479 if($("input[name=email]").val().length != 0) { 480 $('.error-email').hide(); 481 val_email = true; 482 } else { 483 $('.error-email').show(); 484 val_email = false; 485 } 486 if($('input[name=nombres]').val().length != 0){ 487 $('.error-nombres').hide(); 488 val_nombres = true; 489 }else { 490 $('.error-nombres').show(); 491 val_nombres = false; 492 } 493 if($('input[name=PrimerApellido]').val().length != 0){ 494 $('.error-PrimerApellido').hide(); 495 val_APaterno = true; 496 } else { 497 $('.error-PrimerApellido').show(); 498 val_APaterno = false; 499 } 500 if($('input[name=celular]').val().length != 0) { 501 $('.error-celular').hide(); 502 val_celular = true; 503 }else { 504 $('.error-celular').show(); 505 val_celular = false; 506 } 507 if (v_Data != null && v_Data.length > 0) { 508 $('.error-multi').hide(); 509 multi = true; 510 } else { 511 $('.error-multi').show(); 512 multi = false; 513 } 514 515 516 if(val_email && val_nombres && val_APaterno && val_celular && multi) 517 submit = true; 518 else 519 submit = false; 520 }catch(err) { 521 submit = false; 522 } 523 524 return submit; 525 } 526 //valida si es un correo valido 527 function IsEmail(email) { 528 var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 529 if (!regex.test(email)) { 530 return false; 531 } 532 else { 533 return true; 534 } 535 } 536 //valida el numero de telefono 537 function isNumberTel(){ 538 if(isNaN($('input[name=celular]').val())) { 539 $(".error-celular-onlynumber").show(); 540 return false; 541 } 542 if($('input[name=celular]').val().length < 10 || $('input[name=celular]').val().length > 10) { 543 $(".error-celular-max").show(); 544 return false; 545 } 546 547 return true; 548 } 549 550 //Ocultar mensajes de error 551 $.fn.hideMsgError(); 552 553}); 554 555 556</script> 557 558 <script> 559 560function getParam(p) { 561var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search); 562return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); 563} 564 565function getExpiryRecord(value) { 566var expiryPeriod = 90 * 24 * 60 * 60 * 1000; // caducidad de 90 días, en milisegundos 567 568var expiryDate = new Date().getTime() + expiryPeriod; 569return { 570value: value, 571expiryDate: expiryDate 572}; 573} 574 575function addGclid() { 576var gclidParam = getParam('gclid'); 577var gclidFormFields = ['gclid_field']; // aquí se especifican todas las formas posibles de ID de campo de formulario 578var gclidRecord = null; 579var currGclidFormField; 580 581var gclsrcParam = getParam('gclsrc'); 582var isGclsrcValid = !gclsrcParam || gclsrcParam.indexOf('aw') !== -1; 583 584gclidFormFields.forEach(function (field) { 585if (document.getElementById(field)) { 586currGclidFormField = document.getElementById(field); 587} 588}); 589 590if (gclidParam && isGclsrcValid) { 591gclidRecord = getExpiryRecord(gclidParam); 592localStorage.setItem('gclid', JSON.stringify(gclidRecord)); 593} 594 595var gclid = gclidRecord || JSON.parse(localStorage.getItem('gclid')); 596var isGclidValid = gclid && new Date().getTime() < gclid.expiryDate; 597 598if (currGclidFormField && isGclidValid) { 599currGclidFormField.value = gclid.value; 600} 601} 602 603window.addEventListener('load', addGclid); 604 605</script> 606 607 <script> 608 document.getElementById('form_iteso_licenciaturas').addEventListener('submit', function (e) { 609 const honeypot = document.getElementById('company').value; 610 if (honeypot.trim() !== "") { 611 e.preventDefault(); 612 console.warn("Formulario bloqueado por honeypot."); 613 } 614 }); 615</script>