MENU_GENERALES_CARRERAS_BT4

BANNER_RETOS_BECAS_INGENIERIA_MECATRONICA_HTML

INGENIERIA_MECATRONICA_TU_CARRERA_CTA

Develop professional skills

Learn to create technology from the integration and interaction of mechanics, electronics and computer science with the goal of designing, programming and implementing intelligent and innovative devices, systems and processes that make a difference in the world.

LEARN MORE

ADMISION_BECAS_CARRERAS_GENERALES_CARRERAS_CTA4-5

Next admission exam

LEARN MORE

Scholarships

LEARN MORE

Admission

LEARN MORE

ESTA_CARRERA_OBJETIVOS_EDUCACIONALES_NGENIERIA_MECATRONICA_BTX

This degree is for you if:

Program educational objectives

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.

PAP_GENERALES_CARRERAS_CTA1

RANKINGS_PREMIOS_ACREDITACIONES_INGENIERIA_MECATRONICA_CTA4-5

Rankings

LEARN MORE

Awards

LEARN MORE

Accreditations

LEARN MORE

MISION_VISION_CAMPO_LABORAL_BTX

Mission and vision

Career opportunities

Professional development

Imagen mobile

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.
Imagen mobile

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.

RUTA_SUGERIDA_INGENIERIA_MECATRONICA_BL3

Mechatronics Engineering

  

(Blended learning program)

 
Ciencias básicas
 
Proyectos mecatrónicos
 
Computación
 
Electrónica
 
Mecánica
 
Control y automatización
 
Proyecto de aplicación profesional
 
Saberes complementarios
 
Currículum universitario
 
Lenguas*
Proyecto mecatrónico I
Diseño de algoritmos
Cálculo diferencial
Química para procesos
Comunicación oral y escrita
Lenguas
Fundamentos de sistemas electrónicos
Álgebra lineal
Cálculo integral
Física universitaria
Información y autoaprendizaje en la era digital
Conocimiento y cultura
Lenguas
Proyecto mecatrónico II: Innovación tecnológica
Circuitos y dispositivos electrónicos
Programación estructurada
Mecánica de cuerpos rígidos
Ecuaciones diferenciales
Contexto histórico social
Lenguas
Análisis de circuitos
Fundamentos de sistemas digitales
Sólidos deformables
Análisis y síntesis de mecanismos
Probabilidad y estadística
Ética, identidad y profesión
Lenguas
Proyecto mecatrónico III: Modelado y simulación
Fundamentos de microprocesadores y microcontroladores
Instrumentación electrónica
Transmisiones mecánicas
Programación orientada a objetos
Desafíos éticos contemporáneos I
Lenguas
Desarrollo de soluciones con sistemas embebidos
Máquinas y dispositivos eléctricos
Mecánica de fluidos
Sistemas de control automático
Materia complementaria I
Innovación y emprendimiento
Electrónica de potencia
Robótica (inglés)
Procesos de manufactura y sustentabilidad
Sistemas hidráulicos y neumáticos
Materia complementaria II
Inteligencia artificial en sistemas embebidos
Controladores lógicos programables
Materia complementaria III
Proyecto de aplicación profesional I
Desafíos éticos contemporáneos II
Laboratorio de desarrollo de soluciones tecnológicas
Materia complementaria IV
Materia complementaria V
Proyecto de aplicación profesional II
FORMACIÓN EN ACCIÓN -PAP-
Los Proyectos de Aplicación Profesional PAP son espacios de vinculación con comunidades, organizaciones, empresas y gobierno, a través de los cuales estudiantes y profesorado del ITESO ponen en práctica sus habilidades profesionales para incidir estratégicamente en las problemáticas de la sociedad.
*Si ya cumpliste el requisito del idioma inglés que el ITESO solicita, no es necesario tomarlo; si quieres estudiar otras lenguas el ITESO te ofrece francés, italiano, alemán o chino. Consulta el requisito en admision.iteso.mx Las materias del plan de estudios están sujetas a actualización constante y puede haber cambios respecto de su orden o su contenido.
Reconocimiento de Validez Oficial de Estudios (RVOE) según Acuerdo Secretarial SEP núm. 15018, publicado en el Diario Oficial de la Federación el 29 de noviembre de 1976. El ITESO pertenece al Grupo 3 (Instituciones Acreditadas Consolidadas), del Programa de Mejora Institucional SEP.

VIDA_UNIVERSITARIA_AZUL_BT1

University Life

Study on a campus with over 100 specialized laboratories equipped with cutting-edge technology, world-class sports and cultural facilities, all within a university forest with more than 4,000 trees. It's a space for meeting, creating, innovating, and collaborating, which holistically stimulates intellectual, emotional, physical, and spiritual development.

Be part of an educational project that is committed to its surrounding community and to the world, that generates relevant, transformative knowledge with a rigorous, humanistic, critical and flexible way of proceeding focused on service to society.

Activate and enhance your health and your quality of life with a balanced approach. Take exercise classes, join one the teams that represents ITESO, make use of the services of outstanding trainers and specialists in sports nutrition, medicine and psychology who can help you take better care of yourself and enhance your performance. Physical Education and Wellness Center

Experiment and express yourself through the visual and performance arts. You’ll find workshops for painting, music, poetry, ceramics, literature, dance, theater, photography, sculpture, heritage management and much more. You can enjoy exhibitions and performances on the ITESO campus and at Casa ITESO Clavigero.

Open your heart and nourish your spirit. Cultivate Ignatian spirituality and look for a deeper meaning in experiences and learning that invite you to define your life project, to undertake social commitment projects and to prepare yourself to be a social leader who transforms the reality of your community.

Live your university experience in the company of others. You’ll find people nearby who are available to offer you psycho-affective and academic guidance. Being ITESO means being part of a diverse, creative and supportive community.

Cultivate an international educational experience where you interact with students and professors from other regions, from a perspective of respectful intercultural dialogue, global citizenship and proficiency in different languages. ITESO is part of the world’s largest educational network with a presence in over 180 countries. You can study abroad or take part in remote international learning experiences.

Acquaint yourself with ITESO’s library, a one-of-a-kind space with over 640 thousand physical volumes and 200 thousand digital items, ranging from books and periodicals to maps and films, and even a collection of rare antique books. Take advantage of the reading rooms, exhibition spaces, screening rooms, the “agora” space for public events, the materials library and a wide variety of spaces for individual and team work.

Do your university studies on one of the country’s most sustainable campuses, and one of the few in the world with a carefully-tended forest. Participate in projects that focus on the conservation and protection of natural areas and develop initiatives related to responsible consumption that help to shrink our environmental footprint. Use your professional skills to contribute to the care of our common home!

Find solutions and develop your ideas in spaces for experimenting and innovating processes and products, equipped with the latest technology that ITESO puts at your disposal. Promote the construction of new realities that lead to the creation of a more sustainable, more just and more humane world.

Study on a campus with over 100 specialized laboratories equipped with cutting-edge technology, world-class sports and cultural facilities, all within a university forest with more than 4,000 trees. It's a space for meeting, creating, innovating, and collaborating, which holistically stimulates intellectual, emotional, physical, and spiritual development.

Be part of an educational project that is committed to its surrounding community and to the world, that generates relevant, transformative knowledge with a rigorous, humanistic, critical and flexible way of proceeding focused on service to society.

Activate and enhance your health and your quality of life with a balanced approach. Take exercise classes, join one the teams that represents ITESO, make use of the services of outstanding trainers and specialists in sports nutrition, medicine and psychology who can help you take better care of yourself and enhance your performance. Physical Education and Wellness Center

Experiment and express yourself through the visual and performance arts. You’ll find workshops for painting, music, poetry, ceramics, literature, dance, theater, photography, sculpture, heritage management and much more. You can enjoy exhibitions and performances on the ITESO campus and at Casa ITESO Clavigero.

Open your heart and nourish your spirit. Cultivate Ignatian spirituality and look for a deeper meaning in experiences and learning that invite you to define your life project, to undertake social commitment projects and to prepare yourself to be a social leader who transforms the reality of your community.

Live your university experience in the company of others. You’ll find people nearby who are available to offer you psycho-affective and academic guidance. Being ITESO means being part of a diverse, creative and supportive community.

Cultivate an international educational experience where you interact with students and professors from other regions, from a perspective of respectful intercultural dialogue, global citizenship and proficiency in different languages. ITESO is part of the world’s largest educational network with a presence in over 180 countries. You can study abroad or take part in remote international learning experiences.

Acquaint yourself with ITESO’s library, a one-of-a-kind space with over 640 thousand physical volumes and 200 thousand digital items, ranging from books and periodicals to maps and films, and even a collection of rare antique books. Take advantage of the reading rooms, exhibition spaces, screening rooms, the “agora” space for public events, the materials library and a wide variety of spaces for individual and team work.

Do your university studies on one of the country’s most sustainable campuses, and one of the few in the world with a carefully-tended forest. Participate in projects that focus on the conservation and protection of natural areas and develop initiatives related to responsible consumption that help to shrink our environmental footprint. Use your professional skills to contribute to the care of our common home!

Find solutions and develop your ideas in spaces for experimenting and innovating processes and products, equipped with the latest technology that ITESO puts at your disposal. Promote the construction of new realities that lead to the creation of a more sustainable, more just and more humane world.

ACTIVIDADES_INGENIERIA_MECATRONICA_BC6

Actividades

ORIENTACION_VOCACIONAL_GENERALES_CARRERAS_CTA3

Vocational guidance

Have doubts about what program to study? We’re happy to offer you guidance. Write to orienta@iteso.mx or call 33 3669 3434, ext. 3246.

OTRAS_CARRERAS_TITULO_GENERALES_CARRERAS_BL3

Other programs that might interest you

OTRAS_CARRERAS_INGENIERIA_MECATRONICA_CTA4

Mechanical Engineering

LEARN MORE

Electronic Engineering

LEARN MORE

Digital Services and Business Engineering

LEARN MORE

Noticias

Asset Publisher

iteso

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.

iteso
iteso

Contact information:


33 3669 3434, ext. 3224
mecatronica@iteso.mx


INGENIERIA_MECATRONICA_NUESTRA_COMUNIDAD_BC7-P

Be part of ITESO
Sign up to get more information
An error occurred while processing the template.
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='&nbsp;':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>