Tengo una página de portales de Microsoft Power Apps en mi portal que requiere un poco de personalización a través de JavaScript. Me gustaría ocultar campos en función de una dirección de correo electrónico ingresada, lo cual funciona bien. Sin embargo, cuando el usuario ingrese el dominio de correo electrónico que mostrará algunos campos, me gustaría aplicar un formato adicional.
Aquí está el código que tengo actualmente:
$(document).ready(function () { $("#emailaddress1").change(onShowHideEmployeeFields); onShowHideEmployeeFields(); }); function onShowHideEmployeeFields() { var varEmail = $("#emailaddress1").val() //alert(varEmail) if (varEmail.includes("@example.org")) { $('#xxx_employeeid').parent().parent().show(); $('#xxx_employeeid').prop('required', true); $('#xxx_employeeid').closest(".control").prev().addClass("required"); $('#xxx_defaultfacilityid').parent().parent().show(); $('#xxx_defaultfacilityid').prop('required', true); $('#xxx_defaultfacilityid').closest(".control").prev().addClass("required"); $('#xxx_positiontitle').parent().parent().show(); $('#xxx_officer').parent().parent().show(); $('#xxx_officer').prop('required', true); $('#xxx_officer').closest(".control").prev().addClass("required"); $('#xxx_jopositiontitle').parent().parent().show(); } else { $('#xxx_employeeid').parent().parent().hide(); $('#xxx_defaultfacilityid').parent().parent().hide(); $('xxx_defaultfacilityid_label').parent().parent().hide(); $('xxx_positiontitle_label').parent().parent().hide(); $('#xxx_positiontitle').parent().parent().hide(); $('#xxx_officer').parent().parent().hide(); $('#xxx_jopositiontitle').parent().parent().hide(); } }El código funciona bien, sin embargo, quiero ampliar el código mostrando el Título de puesto de JO SI el campo Oficial se ha marcado como 'Sí' (es un campo de casilla de verificación booleano sí/no).
Intenté probar este componente por separado usando el siguiente código:
function onShowHideEmployeeFields() { $('xxx_officer').change(function () { var varJO = $("$xxx_officer").val(); //alert(varJO) if (varJO === 'Yes') { $('xxx_jopositiontitle').parent().parent().show(); } else { $('xxx_jopositiontitle').parent().parent().hide(); } }) }Este código no parece hacer nada. ¿Alguna sugerencia en este asunto?
¡Gracias!
AFAICT su pregunta se reduce a ¿cómo puedo verificar si una casilla de verificación está marcada? . El código que probó está en el camino correcto, pero no es así como obtiene el estado de una casilla de verificación. Una búsqueda rápida muestra muchos ejemplos:
$('xxx_officer').change(function () { var varJO = $("$xxx_officer").prop('checked'); if (varJO) { $('xxx_jopositiontitle').parent().parent().show(); } else { $('xxx_jopositiontitle').parent().parent().hide(); } });Hay muchos, muchos ejemplos de esto aquí en SO, y voté para cerrar esta pregunta como un duplicado.