Ingeniería en Mecatrónica
Innovate in smart devices and systems that positively impact the world
Reasons to study
this degree at ITESO
You will carry out practical exercises and real robotics and automation projects in spaces with state-of-the-art equipment such as our mechatronics, additive manufacturing and electronics laboratories, among others.
You will receive training that encourages your creativity and ingenuity to solve people's real needs.
You will participate in highly specialized multidisciplinary work teams.
Professional development
Create your own company and generate employment opportunities with a people-centered approach to business.
- Develop your idea and business model with the support of a specialized consultancy, from the initial idea of your company until it reaches maturity.
- Learn to gather, interpret, and use valuable information for starting and sustaining your business.
- It launches social economy entrepreneurship projects, generating economic growth through cooperation, inclusion, and trust, in order to achieve a shared benefit for society.
Center for Innovation and Technology Management
Explore an ecosystem of innovation and competitiveness where you can develop technology-based projects in strategic sectors such as electronics, green energy, information technology, and pharmaceuticals, while generating a positive impact on society. By joining the Technology Business Incubator, you can enjoy the following benefits:
- Application of knowledge and management of technological projects.
- Effective linkage with public and private institutions and civil organizations, among other actors in the economy.
- Opportunities to contribute to economic, social and environmental development.
Learn about the services that ITESO offers to help you enter the workforce.
- Do your professional internship and start building your experience and career path.
- Connect with national and international companies through the job bank or job and entrepreneurship fairs.
- Participate in professional networks that open up collaboration opportunities for you.
- Develop your resume and work portfolio with personalized advice.
Program director
Luis Fernando Luque Vega, Ph.D
He holds a PhD and a Master of Science degree in Electrical Engineering from the Center for Research and Advanced Studies (Cinvestav) of the National Polytechnic Institute (IPN), and a degree in Electronics Engineering from the Technological Institute of Culiacán (ITC). His academic and research work focuses on educational mechatronics, robotics, and unmanned aerial systems. He has spearheaded innovation, research, technological development, and entrepreneurship projects with social impact. He is committed to an engineering education based on active learning and the comprehensive development of students capable of sustainably transforming their environment.
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>