Professional Documents
Culture Documents
com/jsf-ajax/
Este formulario esta compuesto de una pgina JSF y un ManagedBean .Vamos a mostrar el cdigo
de ambos.
package com.arquitecturajava;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class PersonaBean {
Ahora bin como ha funcionado realmente la ejecucin del boton? . Bueno lo que ha sucedido es
que JSF ha enviado una peticin al servidor con la pagina cargada con los controles iniciales y se ha
ejecutado en el servidor todo el ciclo de vida de JSF .
Sin entrar a detalle a explicar el ciclo podemos decir lo siguiente de las distintas fases del ciclo de
vida:
1. RestoreView : Restaura los controles de la vista y los prepara para las modificaciones
2. Apply Request Values : Aplica a los controles los valores que nosotros hubieramos modificado en la
pgina HTML
3. Process Validations : Aplica las validaciones pertinentes.
4. Update Model Values :Actualiza los datos del Modelo
5. Invoke Application : Invoca La lgica de negocio pertinente que quede
6. Render Response : Renderiza el resultado de todo el proceso y lo envia al cliente .
Para entender como funciona AJAX en JSF hay que entender que aunque el ciclo de vida de JSF es
muy complejo se puede dividir en dos grupos fundamentales . A estos grupos se les denomina
Ejecucin y Renderizado .Vamos a verlo un poco mas a detalle.
La parte de ejecucin hace referencia como su nombre indica a todo el ciclo de vida que esta ligado a
la propia ejecucin de los componentes dejando de lado la ultima fase, la fase de renderizado. En
cambio la segunda fase es opuesta a la primera solo se encarga del renderizado.
JSF y AJAX nos permiten aplicar estas fases a controles diferentes y obtener un resultado . Por
ejemplo podemos hacer que el control de h:inputText pase por todas las fases de ejecucin.
Pero que no le haga falta pasar por la fase de render ya que esta renderizado correctamente .Ahora
podemos hacer que el control h:outputText funcione de la forma contraria y no pase por ninguna
fase salvo la ultima.
Vamos a verlo en cdigo para terminar de aclarar dudas.
<h:inputText value="#{personaBean.nombre}">
<f:ajax event="keyup" execute="@this" render="zona"/>
</h:inputText>
En ellas concretamente en <f:ajax> se especifica el evento keyUp y como el control actual (@this)
que es el h:inputText necesita de la fase de ejecucin .Mientras por el otro lado el control zona
(identificador del outputText) solo necesita la fase de render. De esta forma segun vamos pulsando
teclas en el inputText via ajax se actualiza el outputText.
http://www.albertcoronado.com/2014/01/23/javaserver-faces-i-jsf-action-y-actionlisterner/
<h:commandButton actionListener=#{miBean.miActionListener}
action=#{miBean.miAction} />
El actionListener se ejecuta antes que el action y llama a un mtodo que tiene una pinta como la
siguiente:
A travs del objeto event tiene acceso al estado del componente y la UI, cosa que action no tiene. Tened
en cuenta que podis crear actionListeners con parmetros y sin el parametro event.
Una vez ejecutado el actionListener JSF ejecuta el action que llama a un mtodo que tiene la siguiente
pinta:
<h:commandButton actionListener=#{miBean.miActionListener}
action=#{miBean.miAction}>
<f:actionListener
type=com.lostsys.miap.actionListeners.MiSegundoActionListener/>
</h:commandButton>
En resumen, utilizaremos el mtodo action cuando queramos que el elemento ejecute una accin de
negocio, este mtodo devolver un String con la siguiente pgina a mostrar. Pondremos un actionListener
cuando queramos que se ejecute un hook antes de la accin de negocio, por ejemplo para que haga ciert as
comprobaciones o modifique la salida del action en funcin de algo.
ola
Bueno eso lo puedes hacer con un escrib de JavaScript mas adelante te coloco un ejemplo completo con los dos casos pero
antes te explico coo funciona.
Lo primero es hacer una funcion que sera laencargada de hacer el Submit, en este caso la funcion la llame Enviar, Esta
funcion es llamada desde el enlace mediante la propiedad HREF que es la que indica a donde se dirigira la pagina en este
caso leestamos especificando que no sera una URL sino que tiene que ejecutar una funcion ya definida y seria asi:
<a href="javascript:Enviar()">Enviar</a>
Para elcaso de la imagen lo unico que hay que hacer es programar el evento ONCLICK de esa imagen ya que al precionarla
ejecutaria la funcion y seria asi:
Ejemplo
-------------------------------------------------------
<html>
<head>
<script language="JavaScript">
function Enviar()
{
frmDatos.submit();
}
</script>
</head>
<body>
<form Name="frmDatos" Action="Pagina.html">
<input Type="text" Name="txtDato">
</form>
<a href="javascript:Enviar()">Enviar</a>
<img src="TuImagen.gif" onClick="Enviar()">
</body>
</html>
-------------------------------------------------------
h:panelGrid y h:dataTable
Ambos nos permiten pintar una tabla en el navegador, pero lo hace recogiendo los datos de forma distinta.
h:panelGrid smplemente es una tabla que tendremos que hacerlos poniendo manualmente todos los
elementos. Sin embargo h.dataTable nos permite asociarla a una Collection, Array, ResultSet, RowSet...
indicando cmo es una de las filas, iterando automticamente el resto.
Un ejemplo tonto de h:panelGrid
<h:panelGrid columns="2">
<h:outputText value="fila 1, columna 1"></h:outputText>
<h:outputText value="fila 1, columna 2"></h:outputText>
<h:outputText value="fila 2, columna 1"></h:outputText>
<h:outputText value="fila 2, columna 2"></h:outputText>
<h:outputText value="fila 3, columna 1"></h:outputText>
<h:outputText value="fila 3, columna 2"></h:outputText>
</h:panelGrid>
Unicamente le hemos dicho que hay dos columnas y todos los componentes consecutivamente. El
mostrarse en el navegador, se irn cogiendo en orden para rellenar las filas con dos elementos en cada
una de ellas (dos columnas).
Un ejemplo tonto con h:dataTable. Supongamos que tenemos un @ManagedBean con una propiedad que
sea una lista de beans Dato
package com.chuidiang.ejemplos.jsf;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class Dato {
private int valor;
private String nombre;
package com.chuidiang.ejemplos.jsf;
import java.util.LinkedList;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class HolaMundo {
private LinkedList<Dato> datos;
public HolaMundo() {
// rellenamos unos datos cualquiera en el constructor
// por tener algo que se vea.
datos = new LinkedList<Dato>();
for (int i = 5; i < 10; i++) {
Dato dato = new Dato();
dato.setValor(i);
dato.setNombre("nombre" + i);
datos.add(dato);
}
}
La clase HolaMundo lleva un simple atributo que es una LinkedList<Dato> y los mtodos set y get
correspondiente. El cdigo xhtml con el h:dataTable para ver estos datos es el siguiente
<h:dataTable value="#{holaMundo.datos}" var="dato">
<h:column>
<f:facet name="header">
<h:outputText value="valor"></h:outputText>
</f:facet>
<h:outputText value="#{dato.valor}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="nombre"></h:outputText>
</f:facet>
<h:outputText value="#{dato.nombre}"></h:outputText>
</h:column>
<h:column>
<h:form>
<h:commandButton action="#{holaMundo.removeValor(dato)}"
value="Borrar"></h:commandButton>
</h:form>
</h:column>
</h:dataTable>
<h:column>
<f:facet name="header">
<h:outputText value="valor"></h:outputText>
</f:facet>
<h:outputText value="#{dato.valor}"></h:outputText>
</h:column>
<f:facet name="header"> es para indicar que esto es columna de la tabla. Se podra poner
name="footer" para el pi de la tabla. Dentro del f:facet ponemos el h:outputText con el texto de esta
cabecera, "valor" en este caso. Por supuesto, podramos poner cualquier elemento que queramos que
haga de cabecera.
<h:outputText value="#{dato.valor}"> indica el contenido de la celda, que ser el atributo valor de la
variable dato, que es la que habamos definido en el var="dato" del h:dataTable.
La mini aplicacin
Vamos a hacer una mini aplicacin que nos permita desde el navegador aadir y borrar Dato a la lista de
datos que hay en HolaMundo.
En HolaMundo.java hacemos unos cambios. Le ponemos mtodos addValor() y removeValor que permitan
aadir y borrar datos de la lista. Tambin, a HolaMundo le ponemos @ApplicationScoped para que los
datos sean igual para todos los usuarios que usen esta aplicacin (mientras no se rearranque la aplicacin,
no vamos a hacer persistencia en base de datos).
...
@ManagedBean
@ApplicationScoped
public class HolaMundo {
...
}
}
A la clase Dato.java vamos a ponerle un id nico, de forma que cuando queramos borrar un dato, sepamos
cual es. Le ponemos un mtodo equals() que haga campo de ese campo id nada ms, de forma que dos
instancias de Dato son equals() si tienen el mismo id. El mtodo equals() lo genera automticamente el IDE
si se le pide. Y si se define equals(), las buenas costumbres requieren que se defina tambin el mtodo
hashCode(), que hace tambin automticamente el IDE.
Para el id nico ponemos un contador esttico, d e forma que cada vez que hagamos un new de esta clase,
se incremente en uno y el valor nos sirva de id. Esto, por supuesto, no es necesario si tuviramos detrs
una base de datos que gestione los id de verdad.
package com.chuidiang.ejemplos.jsf;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class Dato {
private static int contador = 0;
private int id;
private int valor;
private String nombre;
public Dato() {
id = contador++;
}
Ya tenemos todo preparado. Ahora slo nos queda el xhtml, que ser un dataTable con tres columnas. La
primera con el atributo valor, la segunda con el atributo nombre.... y la tercera con el botn de borrar el
elemento.
Fjate que en la tercera columna, donde est el botn de borrar, la action es la llamada al mtodo
removeValor de HolaMundo, al que pasamos como parmetro el dato de la fila en cuestin.
Y en la pgina pondremos tambin un formulario para crear un nuevo elemento. Para que quede bien
organizadito, lo ponemos en un panelGrid, de forma que las etiquetas ocupen la primera columna y las
cajas de texto la segunda. El botn de enviar ir en la segunda columna de la tercera fila, por lo que
ponemos un elemento vaco para ocupar la primera columna de la tercera fila
<h:form>
<h:panelGrid columns="2">
<!-- primera fila -->
<h:outputText value="Valor:"></h:outputText>
<h:inputText id="valor" value="#{dato.valor}"></h:inputText>
Aqu dato hace referencia al @ManagedBean Dato.java, no a la variable del h:dataTable, ya que este
formulario est fuera del h:dataTable. En el botn hemos puesto como action la llamada al metodo
addValor() de HolaMundo.
Si arrancamos y visualizamos esto, veremos lo siguiente
http://programacionextrema.com/2015/10/28/ordenar-tablas-con-jquery-tablesorter/
Ordenar tablas con jQuery
(tableSorter)
Hoy en da es muy comn tener que ordenar tablas con jQuery. Es por eso que en este tutorial
aprenderemos a realizar esta tarea utilizando el plugin para jQuery llamado tableSorter. Este
simple plugin permite ordenar tablas por columna de cualquier tipo, ya sea nmeros, fechas o
palabras.
http://tablesorter.com/docs/#Download.
Una vez descargada podemos empezar con nuestro ejemplo. El siguiente cdigo es el ejemplo
ms bsico para ordenar una tabla con diferente columnas:
<html>
<head>
<title>Ordenar listas con jQuery</title>
<style type="text/css">@import "themes/blue/style.css";</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>
<script type="text/javascript">
$(function(){
//Cuando la pgina se cargue convertimos la tabla con id "myTable" en
una tabla ordenable
$("#myTable").tablesorter();
});
</script>
<style>
body{font-family:Arial;}
</style>
</head>
<body>
<table id="myTable" class="tablesorter">
<thead>
<tr>
<th>Nombre</th>
<th>Apellido</th>
<th>Email</th>
<th>Compra total</th>
<th>Web</th>
</tr>
</thead>
<tbody>
<tr>
<td>Smith</td>
<td>John</td>
<td>jsmith@gmail.com</td>
<td>$50.00</td>
<td>http://www.jsmith.com</td>
</tr>
<tr>
<td>Bach</td>
<td>Frank</td>
<td>fbach@yahoo.com</td>
<td>$50.00</td>
<td>http://www.frank.com</td>
</tr>
<tr>
<td>Doe</td>
<td>Jason</td>
<td>jdoe@hotmail.com</td>
<td>$100.00</td>
<td>http://www.jdoe.com</td>
</tr>
<tr>
<td>Conway</td>
<td>Tim</td>
<td>tconway@earthlink.net</td>
<td>$50.00</td>
<td>http://www.timconway.com</td>
</tr>
</tbody>
</table>
</body>
</html>
Es importante mencionar que el tema se puede cambiar o incluso crear uno propio con CSS.
Con ese cdigo simple ya podemos ordenar una tabla con diferentes columnas. Es muy
importante saber que este plugin admite muchas ms configuraciones, estas mismas las pueden
ver en el sitio oficial (ya mencionado antes) donde tambin pueden encontrar muchos ejemplos.
Bueno hemos llegado al final de este tutorial, espero que les haya servido y ante cualquier
problema no duden en dejar un comentario.
Datepicker con jQuery UI
En este tutorial aprenderemos a utilizar el Datepicker del plugin jQuery UI con varios ejemplos
sencillos.
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker</title>
<link rel="stylesheet"
href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
</head>
<body>
<p>Date: <input type="text" id="datepicker"></p>
</body>
</html>
Una caracterstica importante de este plugin es que nos permite configurar nuestro Datepicker a
gusto. Estas son algunas de las opciones que nos proporciona:
$(function() {
$( "#datepicker" ).datepicker({ minDate: -20, maxDate: "+1M +10D" });
});
Dar formatos a fechas en Datepicker con jQuery UI
Esto lo podemos realizar de la siguiente manera:
$(function() {
$( "#datepicker" ).datepicker({ dateFormat: 'dd/mm/yy'});
});
Los distintos formatos que se aceptan son: DD, d MM, yy, d MM, y, d M, y, yy-mm-dd y
mm/dd/yy.
$(function() {
$( "#datepicker" ).datepicker({ showAnim: 'clip'});
});
Las animaciones pueden ser: show, slideDown, fadeIn, blind, bounce, clip, drop, fold
y slide.
Estas son unas de las tantas cosas que se pueden hacer con un Datepicker en jQuery UI.
Espero que les sea de gran utilidad y ante cualquier problema no duden en dejar un comentario.
Si se quedaron con ganas de ver ms ejemplos pueden ingresar a la pgina ofical de jQuery UI:
https://jqueryui.com/datepicker
En este tutorial aprenderemos a crear nuestro propio modal dialog en Bootstrap y Java Script.
Ejemplo de modal dialog en Bootstrap
Con el siguiente cdigo se podr crear un modal al tocar un botn:
<!DOCTYPE html>
<html>
<head>
<title>Modal dialog en Bootstrap</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></sc
ript>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
">
<!-- Optional theme -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-
theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"><
/script>
</head>
<body>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Ttulo del modal</h4>
</div>
<div class="modal-body">
<p>Cuerpo del modal;</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-
dismiss="modal">Cancelar</button>
<button type="button" class="btn btn-primary">Aceptar</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<!-- Botn para abrir el modal -->
<button type="button" class="btn btn-primary btn-lg" data-
toggle="modal" data-target="#myModal">
Abrir modal
</button>
</body>
</html>
A veces nos puede pasar que tenemos un listado de items y necesitamos abrir un modal por
cada uno de ellos para mostrar su informacin en detalle o realizar una determinada accin. En
ese caso podramos combinar el cdigo anterior con un poco de Java Script:
<!DOCTYPE html>
<html>
<head>
<title>Modal dialog en Bootstrap</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></sc
ript>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
">
<!-- Optional theme -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-
theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"><
/script>
</head>
<body>
<h2>Lenguajes de programacin</h2>
<ul class="list-group">
<li class="list-group-item" onclick="abrirModal(0)">Java Script</li>
<li class="list-group-item" onclick="abrirModal(1)">PHP</li>
<li class="list-group-item" onclick="abrirModal(2)">Python</li>
</ul>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-
label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="modal-title">Ttulo del modal</h4>
</div>
<div class="modal-body" id="modal-body">
<p>Cuerpo del modal;</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-
dismiss="modal">Cancelar</button>
<button type="button" class="btn btn-primary">Aceptar</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
<script>
// Listado de lenguajes de programacin
var lenguajes = [{nombre: 'Java Script', descripcion: 'JavaScript
(abreviado comnmente "JS") es un lenguaje de programacin interpretado,
dialecto del estndar ECMAScript. Se define como orientado a objetos,
basado en prototipos, imperativo, dbilmente tipado y dinmico.'},
{nombre: 'PHP', descripcion: 'PHP es un lenguaje de
programacin de uso general de cdigo del lado del servidor originalmente
diseado para el desarrollo web de contenido dinmico.'},
{nombre: 'Python', descripcion: 'Python es un
lenguaje de programacin interpretado cuya filosofa hace hincapi en una
sintaxis que favorezca un cdigo legible.'}]
// Funcin para abrir un modal y agregar la informacin
// del lenguaje del indice pasado por parmetro
function abrirModal(indice){
$('#modal-title').html(lenguajes[indice].nombre);
$('#modal-body').html('<p>' + lenguajes[indice].descripcion
+ '</p>');
$('#myModal').modal('show');
}
</script>
</body>
</html>
Espero que les sea de gran utilidad el cdigo y ante cualquier problema no duden en dejar un
comentario.
En este tutorial aprenderemos las distintas formas de agregar texto a un div con jQuery,
adems incluiremos un ejemplo completo y muy sencillo.
Antes de comenzar es requisito incluir la dependencia de la librera jQuery en nuestro HTML.
.html() Con esta funcin se pueden obtener y agregar textos con HTML.
.text() Funciona igual que la funcin anterior pero solamente se pueden obtener y agregar
textos.
.val() Funciona solamente sobre un input para obtener y agregar textos.
<!DOCTYPE html>
<html>
<head>
<title>Agregar texto a un div con jQuery</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></sc
ript>
</head>
<body>
<div id="html"></div>
<div id="text"></div>
<input id="val" type="text">
<div id="append">Ejemplo con </div>
<script>
$(function() {
$('#html').html('<strong>Ejemplo con html()</strong>');
$('#text').text('Ejemplo con text()');
$('#val').val('Ejemplo con val()');
$('#append').append('append()');
});
</script>
</body>
</html>
Espero que les sea de gran utilidad este sencillo tutorial en el cual se explica cmo agregar
texto a un div con jQuery. Ante cualquier inconveniente no duden en dejar un comentario.
<!DOCTYPE html>
<html>
<head>
<title>Superponer divs en HTML usando CSS</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></sc
ript>
<style>
#cuadrado{
background: red;
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<div id="cuadrado">
</div>
<button onclick="cambiarColor();">Cambiar color</button>
<button onclick="redondearBordes();">Redondear bordes</button>
<button onclick="bordesNegros();">Bordes negros</button>
<button onclick="agregarTransparencia();">Agregar
transparencia</button>
</body>
<script>
function cambiarColor(){
$('#cuadrado').css('background', 'blue');
}
function redondearBordes(){
$('#cuadrado').css('border-radius', '25px');
}
function bordesNegros(){
$('#cuadrado').css('border', '2px solid black');
}
function agregarTransparencia(){
$('#cuadrado').css('opacity', '0.4');
}
</script>
</html>
Al visitar la pgina que hemos creado y oprimir los distintos botones se van a ejecutar las
funciones de Java Script que cambiarn la esttica del cuadrado.
Bueno gente, hemos llegado al final de este breve tutorial para agregar estilos CSS con
jQuery, espero que les sea de gran utilidad y como digo siempre ante cualquier problema
pueden dejar un comentario.
<!DOCTYPE html>
<html>
<head>
<title>AJAX en jQuery</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></sc
ript>
</head>
<body>
<input type="checkbox" value="1" checked>
<input type="checkbox" value="2">
<input type="checkbox" value="3" checked>
<input type="checkbox" value="4">
<script type="text/javascript">
var selected = new Array();
$(document).ready(function() {
$("input:checkbox:checked").each(function() {
alert($(this).val());
});
});
</script>
</body>
</html>
Con el cdigo anterior vamos a mostrar en pantalla todos los checkbox seleccionados, ahora si
solamente queremos los que no fueron seleccionado tenemos que hacer lo siguiente:
$("input:checkbox:not(:checked)");
$("input:checkbox");
Bueno gente, esto es todo lo que tenemos que saber para obtener todos los checkbox
seleccionados en jQuery, ante cualquier problema no duden en dejar un comentario.
En este tutorial aprenderemos a crear un sencillo reloj en Java Scrit y HTML para insertarlo
directamente en una web.
A veces puede ser de gran utilidad tener un reloj en una web o simplemente algo decorativo. Lo
importante es que no consuma muchos recurso, es por ese motivo que a la hora la vamos a
obtener de la computadora local y no de un servidor.
<div id="reloj"></div>
Luego con Java Script Vamos a crear una funcin que actualice el div con la hora actual:
function actualizarReloj(){
fechaActual = new Date();
hora = fechaActual.getHours()
minuto = fechaActual.getMinutes()
segundo = fechaActual.getSeconds()
Una vez creada la funcin que actualice la hora necesitamos que alguien la ejecute cada un
segundo para que se mantenga actualizada. Esta tarea la podemos realizar usando la
funcin setInterval de la siguiente manera:
setInterval(actualizarReloj,1000);
En la funcin setInterval le pasamos por parmetro la funcin que queremos ejecutar (sin los
parntesis) y los milisegundos.
Ese es todo el cdigo que permite crear un reloj en Java Script y HTML actualizndose cada un
segundo. Pero para que quede un poco ms vistoso le podemos agregar un poco de estilo para
que se vea de la siguiente manera:
A continuacin les dejo el cdigo fuente completo:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Reloj en Java Script</title>
<style>
body{font-family: Arial;}
#reloj{
color: white;
background: #2980b9;
width: 65px;
padding:5px;
border-radius: 5px;
text-align:center;
-webkit-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75);
box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75);
}
</style>
</head>
<body>
<div id="reloj"></div>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$( document ).ready(function(){
</script>
</body>
</html>
Buenos gente, espero que les haya sido til este pequeo tutorial, y como siempre digo ante
cualquier problema no dejen de enviar un comentario.
En este artculo vamos a entender cmo validar un formulario con jQuery usando el
plugin validationEngine version 2.6.1, como primer paso se pueden descargar este plugin
desde el repositorio de validationEngine en GitHub. Ah tambin podrn encontrar toda la
documentacin requerida.
Ahora vamos a crear un formulario con algunos campos de textos requeridos y otros no, combos
de seleccin, adems un campo para validar una URL y contrasea.
<fieldset>
<legend>
Personalizado
</legend>
<label>
<p>Viene con muchas expresiones regulares predifined (telfono,
URL, ip, email..etc)</p>
<br/>
<span>Ingresar URL : </span>
<input value="http://" class="validate[required,custom[url]]
text-input" type="text" name="url" id="url" />
<br/>
</label>
</fieldset>
<fieldset>
<legend>
Iguales
</legend>
<label>
<span>Password : </span>
<input value="karnius" class="validate[required] text-input"
type="password" name="password" id="password" />
</label>
<label>
<span>COnfirmar password : </span>
<input value="kaniusBAD"
class="validate[required,equals[password]] text-input" type="password"
name="password2" id="password2" />
<br/>
</label>
</fieldset>
<input class="submit" type="submit" value="Validate & Validar
formulario"/><hr/>
</form>
Para validar un campo simplemente hay que agregarle la clase validate, por ejemplo para
indicar que un campo es obligatorio habra que agregarle la clase validate[required], y en caso de
validar un email validate[required,custom[url]].
Para poder activar el plugin es necesario introducir el siguiente cdigo de java script, el cual se
va a ejecutar una vez cargada la pgina:
jQuery(document).ready(function() {
// se une el envo de formularios y campos para el motor de validacin
jQuery("#formID").validationEngine();
});
Luego si intentamos enviar el formulario sin completar los campos el resultado sera el siguiente:
Espero que se haya entendido las interesantes funcionalidades que ofrece este plugin para
jQuery. Ante cualquier problema no duden en consultar.
Tutorial de jQuery para
principiantes
En este tutorial de jQuery para principiantes aprenderemos los conceptos bsico de esta
librera y veremos algunos ejemplos muy sencillos para poner en prctica nuestras habilidades
de programadores.
Qu es jQuery?
jQuery es una librera creada inicialmente por John Resig para Java Script que trabaja de
forma rpida, es sencilla y tiene muchas funcionalidades para explorar. Sus tareas principales
son la manipulacin de cdigo HTML, manejo de eventos, animaciones,
peticiones AJAX mucho ms simples y una API fcil de usar, la cual es compatible con muchos
navegadores. Con una combinacin de versatilidad y extensibilidad, jQuery ha cambiado la
forma en que millones de personas escriben Java Script.
Es importante mencionar que jQuery es software libre y de cdigo abierto, adems utiliza las
licencias Licencia MIT y la Licencia Pblica General de GNU v2, permitiendo su uso en
cualquier tipo de proyecto.
Debido a que jQuery es utilizado en todo el mundo, hay millones de desarrolladores que se
encargan de crear nuevos plugins, a continuacin un listado de los ms importantes:
1. jQuery UI: Este plugin ofrece un conjunto de widgets y efectos visuales para mejorar la
usabilidad e interfaz grfica de nuestros sitios.
2. jQuery Form: Permite serializar formularios y mandar la informacin al servidor
rpidamente, entre muchas cosas ms.
3. Fullcalendar: Nos permite mostrar y manipular un calendario con diferentes vistas y la
posibilidad de registrar eventos.
4. jqGrid: Nos permite manipular y crear grillas de forma rpida y sencilla. Adems es
compatible con dispositivos mviles.
5. jQuery Mobile: Este plugin tiene similares caractersticas que jQuery UI, con la
diferencia de que se puede adaptar a dispositivos mviles.
6. Fancybox: El mejor plugin para crear galeras de imgenes usando el atributo rel.
Introduccion a jQuery
Llegamos a la parte ms interesante de este tutorial de jQuery para principiantes, en esta
seccin aprenderemos a utilizar las funciones bsicas que nos ofrece esta librera.
$(document).ready(function(){
// Aqu va nuestro cdigo para manipular el DOM
});
$(document).ready(function(){
midiv = $('#midiv'); // Devolver el elemento HTML con id="midiv"
mispan = $('.mispan'); // Devolver el elemento HTML con class="mispan"
});
Una vez obtenidos los elementos o nodos podemos aplicarles una gran variedad de funciones
que nos ofrece la librera:
Incluso podemos realizar animaciones grficas para ocultar o mostrar una etiqueta HTML:
$.ajax({
url: "/api/getWeather",
data: {
zipcode: 97201
},
success: function( data ) {
$( "#weather-temp" ).html( "<strong>" + data + "</strong> degrees" );
}
});
Para saber un poco ms sobre peticiones AJAX los invito a pasar por el tutorial: Cmo realizar
una peticin AJAX con jQuery.
A continuacin les dejo el cdigo completo que hemos visto en este tutorial:
<!DOCTYPE html>
<html>
<head>
<title>Tutorial de jQuery</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<script src="path/to/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
midiv = $('#midiv'); // Devolver el elemento HTML con id="midiv"
mispan = $('.mispan'); // Devolver el elemento HTML con
class="mispan"
});
</script>
</head>
<body>
<div id="midiv">Contenido de un div</div>
<span class="mispan">Contenido de un span</span>
</body>
</html>
Bueno gente, hemos llegado al final de este tutorial de jQuery, espero que les sea de gran
utilidad y ante cualquier problema no duden en dejar un comentario.
Eliminar y agregar clases con
jQuery
En este tutorial aprenderemos a eliminar y agregar clases con jQuery utilizando las
funciones addClass y removeClass. Esto nos puede beneficiar en muchas ocasiones, como por
ejemplo cuando queremos manipular muchas propiedades CSS de una etiqueta.
<!DOCTYPE html>
<html>
<head>
<title>Eliminar y agregar clases con jQuery</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></sc
ript>
<style>
.cuadrado-rojo-chico{
width:200px;
height: 200px;
background: red;
}
.cuadrado-verde-grande{
width:400px;
height: 400px;
background: green;
}
</style>
</head>
<body>
<div id="cuadrado" class="cuadrado-rojo-chico"></div>
<button type="button" onclick="cambiarRojoChico()">Rojo chico</button>
<button type="button" onclick="cambiarVerdeGrande()">Verde
grande</button>
<script>
function cambiarVerdeGrande(){
// Elimino la clase de color rojo y tamao chico
$('#cuadrado').removeClass('cuadrado-rojo-chico');
function cambiarRojoChico(){
// Hago lo contrario que en el caso anterior
$('#cuadrado').removeClass('cuadrado-verde-grande');
$('#cuadrado').addClass('cuadrado-rojo-chico');
}
</script>
</body>
</html>
Simplemente al presionar los botones vamos a ver el resultado de eliminar y agregar una clase
en jQuery, cambiando as el color y tamao del cuadrado.
Bueno gente, hemos llegado al final de este tutorial en el cual se explica cmo eliminar y
agregar clases con jQuery. Ante cualquier problema no duden en dejar un comentario.