¿Cómo puedo invisibilizar grupos de controles a través de jQuery?
En mi proyecto / elemento web / página web de Sharepoint, creo dinámicamente elementos / controles de página usando C # en el archivo * .ascx.cs.
En el archivo * .ascx, uso jQuery para responder a eventos que suceden en la página (selecciones, cambios de estados de casillas de verificación, etc.).
Tengo la necesidad de invisibilizar condicionalmente grupos de controles / elementos en la página. Específicamente, si el usuario marca una casilla de verificación determinada, puedo "eliminar" franjas completas de la página que, en ese escenario, no se aplican a ella.
¿Cómo puedo hacer esto? Tengo este punto de partida:
/* If the select "Yes" (they are seeking payment for themselves, as opposed to someone else), omit (invisibilize) sections 2 and 3 on the form */
$(document).on("change", '[id$=ckbxPaymentForSelf]', function () {
var ckd = this.checked;
if (ckd) {
// what now?
}
});
Podría hacerlo de la manera que me arranca el cabello (lo que sería muy doloroso para mí, porque tengo casi tanto cabello como lo hizo Absalom), y establecer cada elemento individual, así:
if (ckd) {
var $this = $('[id$=txtbxthis]');
var $that = $('[id$=txtbxthat]');
var $theother = $('[id$=txtbxtheother]');
. . . // store a reference to all the other to-be-affected elements in vars
$this.visible = false; // <= this is pseudoscript; I don't know what the jQuery to invisiblize an element is
$that.visible = false; // " "
$theother.visible = false; // " "
. . . // invisiblize all the other to-be-affected elements
}
¡Seguramente hay una manera más elegante / mejor!
¿Se trata de asignar a todos los elementos condicionalmente invisibles una clase particular, y luego invisibilizar cada elemento que se le asigna esa clase, o qué?
Además, quiero que el área utilizada anteriormente por esta franja ahora invisible para "desaparecer" o "enrollarse" no se siente allí con una mirada en blanco, un abismo bostezante o una extensión sin rasgos similares al desierto de Gobi.