Manejo de listas select con jQuery (ComboBox/DropDownList)

jQuery es un framework cuyo uso se hace casi inevitable para todos aquellos que usamos de forma intensiva JavaScript. El manejo de las listas de elementos en un sitio web, con la etiqueta <select>, es algo básico en el manejo de datos presentados en formularios.

De cara a validar, gestionar, editar, insertar… es decir, hacer todo tipo de operaciones con los datos en el cliente, necesitamos de JavaScript pero su uso es tedioso. jQuery lo hace simple e inmediato. Veamos el caso concreto del manejo del <select>.

Veamos, tenemos el siguiente listado en un sitio, vemos el código directamente en HTML:

<select id="miselect">
 <option value="1">Ubuntu</option>
 <option value="2">Fedora</option>
 <option value="3">Red Hat</option>
 <option value="4">Debian</option>
</select>

Para cada elemento tenemos dos datos:

  • El texto que se muestra: suele ser algo visible para el humano, un nombre de distribución en este caso
  • El valor: suele ser un identificador único, en este caso es una referencia ficticia a una tabla de distribuciones

Comencemos a tratarlo.

Seleccionar el elemento

La sintaxis de los selectores de jQuery está basada en la de CSS. En este caso elegir el <select> dentro del DOM del documento sería como sigue:

$("#miselect")

Obtener el valor del ítem seleccionado

Sobre el selector aplicamos la función val():

Leer más » 35 Comentarios

Comprobar si una variable u objeto es un entero en JavaScript

Probablemente hayas echado de menos alguna vez en JavaScript una función isInt(), es decir, que le pases una variable y te devuelva verdadero si es entero y falso en caso contrario. Esta comprobación es muy típica en el envío de formularios: edades, componentes de una fecha o cualquier otra cantidad que no puede tener decimales.

Acabo de tener esta necesidad y aquí os traigo la función que hace justo esto:

function esEntero(x){
	var y = parseInt(x);
	if (isNaN(y)) 
		return false;
	return x == y && x.toString() == y.toString();
}

Aquí tenéis la función y aquí os dejo su correspondiente explicación, odio copiar y pegar código de Internet si no sé perfectamente cuál es el por qué de cada sentencia.

Leer más » 9 Comentarios

Enviar múltiples parámetros a la vez con JavaScript

Cuando trabajamos con JavaScript haciendo uso o no de jQuery, es frecuente tener que enviar muchos parámetros a una función o enviar un número indeterminado de parámetros. El otro día explicábamos cómo manejar parámetros opcionales en JavaScript y hoy os traemos una pequeña nota relacionada, que seguro os resultará útil: enviar un múltiples parámetros a la vez usando una sola variable.

La idea es la siguiente, tengo una función de este estilo:

function nuevoCliente(nombre, apellidos, edad, ciudad, cp, web, email)
{

}

La llamada sería:

nuevoCliente("Javier", "Carazo", 26, "Córdoba", 14000, "linuxhispano.net",
 "mimail@correo.es");

Es posible, que haya veces que no quiera enviar todo o directamente son tantos los parámetros a enviar que no es funcional usar este método tradicional.

Sin embargo, podemos usar el siguiente modelo, que seguro os resulta mucho más cómodo:

var parametros = {
 parametro0 = valor0,
 parametro1 = valor1,
 ...
}

miFuncion(parametros);

Para nuestro caso sería:

Leer más » 3 Comentarios

Parámetros opcionales en funciones de JavaScript

El desarrollo web siempre tiene dos interacciones: la que se produce en el lado del servidor y la que se produce en el lado del cliente. Esta segunda cada vez tiene más relevancia para conseguir una mejor experiencia del usuario y JavaScript es el responsable de ésto.

JavaScript es una de esas tecnologías que se pensó para abordar pequeños problemas, pero que por cuestiones de compatibilidad y aceleración tecnológica, se ha convertido en una tecnología versátil a la vez que necesaria para poder afrontar las exigencias de la actualidad.

En lenguajes como PHP, podemos hacer uso de parámetros opcionales (aquí explicaba su uso al hablar de cómo podíamos imitar la sobrecarga de funciones en el curso de PHP orientado a objetos), por ejemplo:

function crearPersona($nombre = "")

Y sus respectivas llamadas:

crearPersona("Javier");
crearPersona();

Sin embargo, en JavaScript no tenemos esta posibilidad, aunque al igual que ocurría con la sobrecarga de funciones en PHP, podemos imitarlo. Veamos cómo.

Leer más » 4 Comentarios

Aumentar el tamaño máximo de subida de ficheros con Apache y PHP

Es muy frecuente que cuando estemos desarrollando algún tipo de aplicación web, tengamos la necesidad de poder subir ficheros. La subida de ficheros es una operación relativamente simple, pero tiene una limitación, el tamaño del mismo. Esta limitación podemos gestionarla a través de PHP dentro del php.ini (en función de cuál sea tu distribución se encontrará en un sitio u otro, en mi caso está en /etc directamente).

Logo PHP

¿Qué parámetros deberemos modificar?

Leer más » 1 Comentario

Eliminar widgets del escritorio en WordPress

Los widgets dentro del escritorio, son un componente relativamente novedoso en WordPress (aparecieron en la versión 2.7). Pueden ser útiles para mostrar ciertos datos, por ejemplo los resultados de Google Analytics.

Sin embargo, debemos asegurarnos tener control sobre ellos, cuando le instalamos WordPress a un cliente y modificamos muchas cosas mostrar más widget de la cuenta puede ser un problema.

Para conseguir personalizar el escritorio usaremos el siguiente método.

function quitar_widgets_escritorio() {
 global $wp_meta_boxes;

 // quitar el widget de enlaces entrantes
 unset($wp_meta_boxes['dashboard']['normal']['core']
['dashboard_incoming_links']);	

 // quitamos unos pocos más: right-now, primario y secundario
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}

// lo unimos a su hook
add_action('wp_dashboard_setup', 'quitar_widgets_escritorio' );

Como podéis ver la idea es hacer un unset del elemento deseado dentro de la colección: $wp_meta_boxes[‘dashboard’]. En el Codex tenéis más información sobre esta colección y todo lo referente a los widgets del escritorio.

Quitar widgets dependiendo del rol de usuario

Por supuesto, también podemos realizar esta misma operación teniendo en cuenta el rol del usuario. Es muy útil si queremos distinguir entre: administradores, editores, colaboradores… y mostrarle a cada uno la información deseada:

Leer más » 1 Comentario

¿Por qué usar el triple igual en JavaScript para comparar?

Los lenguajes no tipados de forma explícita, como JavaScript, suelen darnos a la vez comodidad, por no tener que escribir repetidamente el tipo; y quebraderos de cabeza, por los problemas que podemos tener en ocasiones al hacer igualaciones o pasar parámetros.

Sin embargo, el lenguaje nos provee de mecanismos para poder, al menos en parte, esquivar estos problemas. Uno de ellos es usar el triple-igual, en lugar de el doble-igual, a la hora de comparar.

¿Por qué?

Porque al usar el triple-igual obligamos al intérprete a que compare también tipos. Veamos ejemplos.

Ejemplos

alert(99 == "99"); // devolverá true
alert(99 === "99"); // devolverá false

Leer más » 4 Comentarios

Deshabilitar notificaciones de actualización automática en WordPress

Si tenemos usuarios de WordPress que no son administradores del portal, no deberían ser notificados de ningún tipo de actualización. La idea es que si vendemos WordPress como un servicio y tenemos la política de: nosotros administrar el portal, el cliente ser usuario del servicio; no debemos permitir que aparezcan notificaciones de actualizaciones automáticas. read more

Leer más » 1 Comentario

PregCopy un recopilatorio de expresiones regulares

Las expresiones regulares o patrones, son uno de los mecanismos más potentes a la vez que breves, de tratamiento de cadenas, algo básico en el día a día de un programador. Nuestro lector y amigo exos se ha puesto en contacto con nosotros para presentarnos un nuevo proyecto personal: PregCopy, un recopilatorio de expresiones regulares.

A través de él podréis buscar o aportar expresiones regulares para cualquier problema relacionado con cadenas, os sorprenderán lo fácil que puede llegar a ser implementar ciertas labores usando expresiones regulares.

PregCopy

Leer más » 2 Comentarios