Una clase para simular (en parte) el objeto My de Visual Basic 2005
// Una clase para simular (en parte) el objeto My de Visual Basic 2005 static class My { public static Properties.Settings Settings { get { return Properties.Settings.Default; } } }
Me gustó que las etiquetas con los errores de validación se crearan en el momento de mostrar estas alertas y que además salieran con una sutil animación.
<p id="pnombre"> <label id="lnombre">Nombre:</label> <input type="text" id="inombre" name="nombre" /> </p> ... <p class="btn"><a id="send" href="#">[enviar]</a></p>
$(document).ready(function() { $("#send").click(function() { var oForm = document.forms[0]; var oNombre = oForm.elements["nombre"]; var bOk = true; $("p.error").remove(); if(oNombre.value=="") { oNombre.focus(); $("#pnombre" ).after("<p class='error'>Por favor, indíca tu nombre.</p>"); bOk = false; } ... $("p.error").slideDown(); if(bOk) oForm.submit(); return false; }); });
Se trata de un menú totalmente accesible.
Puede tener varios niveles.
Los enlaces a # desplegan un submenu y los enlaces a una página van a ella.
.submenu { display: none; }
<ul id="menu"> <li><a href="#">opcion 1</a><ul class="submenu"> <li><a href="opcion.php">opcion 1.1</a></li> </ul></li> <li><a href="#">opcion 2</a><ul class="submenu"> <li><a href="opcion.php">opcion 2.1</a></li> <li><a href="#">opcion 2.2</a><ul class="submenu"> <li><a href="opcion.php">opcion 2.2.1</a></li> <li><a href="opcion.php">opcion 2.2.2</a></li> </ul></li> </ul></li> </ul>
$(document).ready(function () { $("#menu a").click(fOption); }); function fOption() { var jThis = $(this); var href = jThis.attr("href"); if(href.indexOf("#")>-1) { $(".submenu").css({ display: "none" }); jThis.parent().children("ul").css({ display: "block" }); jThis.parents(".submenu").css({ display: "block" }); return false; } return true; }
xml es XmlDocument
foreach(XmlNode n in xml.ChildNodes) { if (n.NodeType == XmlNodeType.XmlDeclaration) n.ParentNode.RemoveChild(n); }
El siguiente es el Reset CSS de Eric Meyer:
/* v1.0 | 20080212 */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } /* remember to define focus styles! */ :focus { outline: 0; } /* remember to highlight inserts somehow! */ ins { text-decoration: none; } del { text-decoration: line-through; } /* tables still need 'cellspacing="0"' in the markup */ table { border-collapse: collapse; border-spacing: 0; }
WMS / SAP Referencia Idoc
-- 76027871 SELECT * FROM SAP_EDIDCO where docnum = :DOC_NUM; select * from sap_ediddo where docnum = :DOC_NUM;
Esto se usa para hacer una coleccion de un mismo objeto
Public Class ProcesosBase Inherits CollectionBase Public Sub New() End Sub Public Function Add(ByVal value As CLASE_A_USAR) As Integer Dim res As Integer res = List.Add(value) Return res End Function End Class
Con este ejemplo se puede hacer una invocación a funciones que estén en otro fichero utilizando Ajax. En este ejemplo se asocia al evento onBlur de un campo de texto la llamada Ajax dentro de un javascript.
De esta forma el código que esta en cliente abre un canal al servidor y ejecuta el código que haya en el y lo devuelve
//Este es el código que va en cliente <html> <head> <title>Prueba tarifas AJAX</title> </head> <body> CampoTexto<input type="text" id="texto" onblur="calcula()" value="2007"><br/> </html>
<script> //Este es el código que va en cliente function calcula() { // Obtener la instancia del objeto XMLHttpRequest if (window.XMLHttpRequest) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { // Internet Explorer http_request = new ActiveXObject("Microsoft.XMLHTTP"); } // Preparar la funcion de respuesta http_request.onreadystatechange = muestraContenido; ////////////////////////////////////////////////////////////////////// // Realizar peticion HTTP///////////////////////////////////////////// var url = '/public/api/utilTarifas.aspx?cod='+document.getElementById('texto').value; ////////////////////////////////////////////////////////////////////// http_request.open('GET', url, true); http_request.send(null); function muestraContenido() { if(http_request.readyState == 4) { if (http_request.status == 200) { var documento=http_request.responseText; ////////////////////////////////////////////////////////////////////// // TRATAMOS LA RESPUESTA///////////////////////////////////////////// if (documento !='Error') { alert(documento ); } ////////////////////////////////////////////////////////////////////// } } } } </script>
//Este puede ser el codigo invocado en otra página, en este caso con extensión aspx y que va en el servidor
<%@ Page Language="c#"%> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb"%> <%@ import Namespace="System.Web" %> <%@ import Namespace="System" %> <%@ import Namespace="System.Net" %> <% try{ String codigo= Request.QueryString["cod"]; String tarifas=""; if(codigo='2007') tarifas="1,2,3,4,5"; else tarifas="6,7,8,9,10"; //Ejecutas tu consulta de BBDD y la devuelves en el string //Este ejemplo sencillo devuelve una serie de valores Response.Write(tarifas); } catch(Exception e) { //Response.Write(e); Response.Write("Error"); } %>
<label>DNI/NIF </label> <input type="text" id="dni" onblur="validaNif(this)"></input> <br><br> <label>CIF </label> <input type="text" id="cif" onblur="validaCif(this)"></input> <br><br> <label>NIE </label> <input type="text" id="nie" onblur="validaNie(this)"></input> <br><br> <br><br> <label>DNI/NIF </label> <input type="text" id="dni2" onblur="validaNif2('dni2','ldni')"></input> <input type="text" id="ldni" size="1" onblur="validaNif2('dni2','ldni')"></input> <br><br> <label>CIF </label> <input type="text" id="cif2" onblur="validaCif2('cif2','lcif')"></input> <input type="text" id="lcif" size="1" onblur="validaCif2('cif2','lcif')"></input> <br><br> <label>NIE </label> <input type="text" id="nie2" onblur="validaNie2('nie2','lnie')"></input> <input type="text" id="lnie" size="1" onblur="validaNie2('nie2','lnie')"></input> <br><br> <TABLE BORDER=0> <TR> <TD>Banco</TD> <TD>Sucursal</TD> <TD>DC</TD> <TD>Cuenta</TD> </TR> <TR> <TD><INPUT TYPE="text" NAME="banco" id="banco" MAXLENGTH="4" SIZE="4" onblur="validar('banco','sucursal','dc','cuenta')"></TD> <TD><INPUT TYPE="text" NAME="sucursal" id="sucursal" MAXLENGTH="4" SIZE="4" onblur="validar('banco','sucursal','dc','cuenta')"></TD> <TD><INPUT TYPE="text" NAME="dc" id="dc" MAXLENGTH="2" SIZE="2" onblur="validar('banco','sucursal','dc','cuenta')"></TD> <TD><INPUT TYPE="text" NAME="cuenta" id="cuenta" MAXLENGTH="10" SIZE="10" onblur="validar('banco','sucursal','dc','cuenta')"></TD> </TR> </TABLE> </FORM>
//Funcion volver function retornar(id) { control=document.getElementById(id); document.getElementById(id).value=''; //document.getElementById(id).select(); //document.getElementById(id).focus(); return; } //Funciones auxiliares function IsNumeric(cadena) { var ValidChars = "0123456789"; var IsNumber=true; var Char; for (i = 0; i < cadena.length && IsNumber == true; i++) { Char = cadena.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } // check to see if input is alphabetic function isAlphabetic(cadena) { if (cadena.match(/^[a-zA-Z]+$/)) { return true; } else { return false; } } //Funciones validadoras function validaNif(control) { if (control.value=="") return; var dni=control.value; var numero = dni.substr(0,dni.length-1); var let = dni.substr(dni.length-1,1); let=let.toUpperCase(); numero = numero % 23; var letra='TRWAGMYFPDXBNJZSQVHLCKET'; letra=letra.substring(numero,numero+1); //alert(letra); if (letra!=let) { mensaje("dni","es"); retornar(control.id); } } function validaCif(control) { if (control.value=="") { return; } var texto=control.value; var pares = 0; var impares = 0; var suma; var ultima; var unumero; var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I"); var xxx; texto = texto.toUpperCase(); var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g); if (!regular.exec(texto)) { mensaje("cif","es"); retornar(control.id); } ultima = texto.substr(8,1); for (var cont = 1 ; cont < 7 ; cont ++){ xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); pares += parseInt(texto.substr(cont,1)); } xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); suma = (pares + impares).toString(); unumero = parseInt(suma.substr(suma.length - 1, 1)); unumero = (10 - unumero).toString(); if(unumero == 10) unumero = 0; if ((ultima == unumero) || (ultima == uletra[unumero])) return true; else { mensaje("cif","es"); retornar(control.id); } } function validaNie(control) { if (control.value=="") return; var a=control; var temp=a.value.toUpperCase(); var cadenadni="TRWAGMYFPDXBNJZSQVHLCKET"; var v1 = new Array(0,2,4,6,8,1,3,5,7,9); var posicion=0; var letra=" "; //Residente en España if (a.value.length==9) { if (temp.substr(0,1)=="X") { var temp1=temp.substr(1,7); posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/ letra = cadenadni.substring(posicion,posicion+1); if (!/^[A-Za-z0-9]{9}$/.test(temp)) { mensaje("nie","es"); retornar(control.id); } else { //Tiene los 9 dígitos, comprobamos si la letra esta bien var temp1=temp.substr(1,7); posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/ letra = cadenadni.charAt(posicion); var letranie=temp.charAt(8); if (letra != letranie){ mensaje("nie","es"); retornar(control.id); } } } else { mensaje("nie","es"); retornar(control.id); } }else if (a.value.length==14){//14 caracteres, los 2 primeros letras var temp1=temp.substr(0,2); if (isAlphabetic(temp1)!=true) { mensaje("nie","es"); retornar(control.id); } } else { mensaje("nie","es"); retornar(control.id); } } function mensaje(msg,lang) { if (lang=="es") { if(msg=="dni") { alert("DNI no valido"); } else if (msg=="cif") { alert("CIF no valido"); } else if (msg=="nie") { alert("NIE no valido"); } else if (msg=="dc") { alert("El digito de control no es correcto"); } else if (msg=="completo") { alert("Rellene todos los datos de la cuenta"); } else if (msg=="formato") { alert("Formato incorrecto"); } else alert("Formato no valido"); } } function validar(ibanco,isucursal,idc,icuenta) { var banco=(document.getElementById(ibanco).value); var sucursal=(document.getElementById(isucursal).value); var dc=(document.getElementById(idc).value); var cuenta=(document.getElementById(icuenta).value); if (banco == "" || sucursal == "" || dc == "" || cuenta == ""){ return; } else { if (banco.length != 4 || sucursal.length != 4 || dc.length != 2 || cuenta.length != 10) { mensaje("completo","es"); retornar(idc); } else { if (!numerico(banco) || !numerico(sucursal) || !numerico(dc) || !numerico(cuenta)){ mensaje("formato","es"); retornar(ibanco); retornar(isucursal); retornar(idc); retornar(icuenta); } else { //alert(obtenerDigito("00" + banco + sucursal)); //alert(obtenerDigito(cuenta)); if (!(obtenerDigito("00" + banco + sucursal) == parseInt(dc.charAt(0))) || !(obtenerDigito(cuenta) == parseInt(dc.charAt(1)))) { mensaje("dc","es"); retornar(idc); } else return; } } } } function numerico(valor){ cad = valor.toString(); for (var i=0; i<cad.length; i++) { var caracter = cad.charAt(i); if (caracter<"0" || caracter>"9") return false; } return true; } function obtenerDigito(valor){ valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6); control = 0; for (i=0; i<=9; i++) control += parseInt(valor.charAt(i)) * valores[i]; control = 11 - (control % 11); if (control == 11) control = 0; else if (control == 10) control = 1; return control; } function validaNif2(c1,c2) { var campo1=(document.getElementById(c1).value); var campo2=(document.getElementById(c2).value); if (campo1 == "" || campo2 == ""){ return; }else{ var dni=campo1+campo2; var numero = dni.substr(0,dni.length-1); var let = dni.substr(dni.length-1,1); numero = numero % 23; var letra='TRWAGMYFPDXBNJZSQVHLCKET'; letra=letra.substring(numero,numero+1); if (letra!=let) { mensaje("dni","es"); retornar(c2); } } } function validaCif2(c1,c2) { var campo1=(document.getElementById(c1).value); var campo2=(document.getElementById(c2).value); if (campo1 == "" || campo2 == ""){ return; }else{ //alert("Cif "+campo1+" "+campo2); var texto=campo1+campo2; var pares = 0; var impares = 0; var suma; var ultima; var unumero; var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I"); var xxx; texto = texto.toUpperCase(); var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g); if (!regular.exec(texto)) { mensaje("cif","es"); retornar(control.id); } ultima = texto.substr(8,1); for (var cont = 1 ; cont < 7 ; cont ++){ xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); pares += parseInt(texto.substr(cont,1)); } xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0"; impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); suma = (pares + impares).toString(); unumero = parseInt(suma.substr(suma.length - 1, 1)); unumero = (10 - unumero).toString(); if(unumero == 10) unumero = 0; if ((ultima == unumero) || (ultima == uletra[unumero])) return true; else { mensaje("cif","es"); retornar(c2); } } } function validaNie2(c1,c2) { var campo1=(document.getElementById(c1).value); var campo2=(document.getElementById(c2).value); if (campo1 == "" || campo2 == ""){ return; }else{ //alert("Nie "+campo1+" "+campo2); var a=campo1+campo2; var temp=a.toUpperCase(); var cadenadni="TRWAGMYFPDXBNJZSQVHLCKET"; var v1 = new Array(0,2,4,6,8,1,3,5,7,9); var posicion=0; var letra=" "; //Residente en España if (a.length==9) { if (temp.substr(0,1)=="X") { var temp1=temp.substr(1,7); posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/ letra = cadenadni.substring(posicion,posicion+1); if (!/^[A-Za-z0-9]{9}$/.test(temp)) { mensaje("nie","es"); retornar(c2); } else { //Tiene los 9 dígitos, comprobamos si la letra esta bien var temp1=temp.substr(1,7); posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/ letra = cadenadni.charAt(posicion); var letranie=temp.charAt(8); if (letra != letranie){ mensaje("nie","es"); retornar(c2); } } } else { mensaje("nie","es"); retornar(c2); } }else if (a.length==14){//14 caracteres, los 2 primeros letras var temp1=temp.substr(0,2); if (isAlphabetic(temp1)!=true) { mensaje("nie","es"); retornar(c2); } } else { mensaje("nie","es"); retornar(c2); } } }
<p>Ejemplo de validación de fechas con formato <b>dd/mm/aaaa</b></p>
<small>Fecha:</small>
<br>
<input type=“text” name=“fecha” size=“15” onblur=“testFecha(this)”>
<script>
function testFecha(control){
if (control.value.length==0)
return;
if (!validaFecha(control.value))
{
alert(“Fecha Invalida”);
control.focus();
}else{
alert(“ok”);
}
}
function validaFecha(Cadena){ var Fecha= new String(Cadena) var RealFecha= new Date() var Ano= new String(Fecha.substring(Fecha.lastIndexOf(”/”)+1,Fecha.length)) var Mes= new String(Fecha.substring(Fecha.indexOf(”/”)+1,Fecha.lastIndexOf(”/”))) var Dia= new String(Fecha.substring(0,Fecha.indexOf(”/”)))
// Valido el año if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){ return false; } // Valido el Mes if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){ return false; } // Valido el Dia if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){ return false; } if (Mes==4 || Mes==6 || Mes==9 || Mes==11) { if (Dia>30) { return false; } } if (Mes==2 && Dia > 28 ) { bisiesto=((Ano % 4 == 0) && ((Ano % 100 != 0) || (Ano % 400 == 0))); if (bisiesto && Dia<=29) return true; else return false; } return true; }