HTML5 introdujo el placeholder
atributo en los input
elementos, lo que permite mostrar un texto predeterminado atenuado.
Lamentablemente, Internet Explorer, incluido IE 9, no lo admite.
Ya hay algunos scripts de simulador de marcador de posición por ahí. Por lo general, funcionan colocando el texto predeterminado en el campo de entrada, le dan un color gris y lo eliminan nuevamente tan pronto como enfoca el campo de entrada.
El inconveniente de este enfoque es que el texto del marcador de posición está en el campo de entrada. Así:
- los scripts no pueden verificar fácilmente si un campo de entrada está vacío
- el procesamiento del lado del servidor debe verificar el valor predeterminado para no insertar el marcador de posición en la base de datos.
Me gustaría tener una solución, donde el texto del marcador de posición no está en la entrada en sí.
El mejor en mi experiencia es https://github.com/mathiasbynens/jquery-placeholder (recomendado por html5please.com ). http://afarkas.github.com/webshim/demos/index.html también tiene una buena solución entre su biblioteca mucho más extensa de polyfills.
fuente
Con una implementación de jQuery, puede eliminar FÁCILMENTE los valores predeterminados cuando llegue el momento de enviar. A continuación se muestra un ejemplo:
Sé que está buscando una superposición, pero es posible que prefiera la facilidad de esta ruta (ahora sabiendo lo que escribí anteriormente). Si es así, escribí esto para mis propios proyectos y funciona muy bien (requiere jQuery) y toma solo un par de minutos para implementarlo en todo su sitio. Al principio, ofrece texto gris, gris claro cuando está enfocado y negro cuando escribe. También ofrece el texto del marcador de posición siempre que el campo de entrada esté vacío.
Primero configure su formulario e incluya sus atributos de marcador de posición en las etiquetas de entrada.
Simplemente copie este código y guárdelo como placeholder.js.
Para usar en una sola entrada
Así es como recomiendo que lo implemente en todos los campos de entrada en su sitio cuando el navegador no admite atributos de marcador de posición HTML5:
fuente
Después de probar algunas sugerencias y ver problemas en IE, este es el que funciona:
https://github.com/parndt/jquery-html5-placeholder-shim/
Lo que me ha gustado: solo incluye el archivo js. No es necesario iniciarlo ni nada.
fuente
La siguiente solución se une a los elementos de texto de entrada con el atributo de marcador de posición. Emula un comportamiento de marcador de posición solo para IE y borra el campo de valor de la entrada al enviar si no se cambia.
Agregue este script e IE parecería admitir marcadores de posición HTML5.
fuente
Te sugiero una función simple:
Y para usarlo, llámalo de esta manera:
fuente
Encontré una solución bastante simple usando este método:
http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
es un truco de jquery, y funcionó perfectamente en mis proyectos
fuente
Puedes usar :
fuente
Simple como este:
fuente
He escrito un complemento jquery para resolver este problema ... es gratis ...
Directorio JQuery:
http://plugins.jquery.com/project/kegles-jquery-placeholder
Sitio: www.kegles.com.br/jquery-placeholder/
fuente
Se me ocurrió un script JQuery de marcador de posición simple que permite un color personalizado y utiliza un comportamiento diferente de borrar entradas cuando se enfoca. Reemplaza el marcador de posición predeterminado en Firefox y Chrome y agrega soporte para IE8.
fuente
Placeholdr es un marcador de posición jQuery polyfill superligero que escribí. Es menos de 1 KB minificado.
Me aseguré de que esta biblioteca aborde sus dos preocupaciones:
Placeholdr extiende la función jQuery $ .fn.val () para evitar valores de retorno inesperados cuando el texto está presente en los campos de entrada como resultado de Placeholdr. Entonces, si te quedas con la API jQuery para acceder a los valores de tus campos, no necesitarás cambiar nada.
Placeholdr escucha los envíos de formularios, y elimina el texto del marcador de posición de los campos para que el servidor simplemente vea un valor vacío.
Nuevamente, mi objetivo con Placeholdr es proporcionar una solución sencilla para el problema del marcador de posición. Avíseme en Github si hay algo más que le interesaría tener soporte de Placeholdr.
fuente
PARA insertar el complemento y verificar que el ie funciona perfectamente jquery.placeholder.js
fuente
Aquí hay una función javascript pura (no se necesita jquery) que creará marcadores de posición para IE 8 y posteriores y también funciona para contraseñas. Lee el atributo de marcador de posición HTML5 y crea un elemento span detrás del elemento de formulario y hace que el fondo del elemento de formulario sea transparente:
fuente
NOTA: el autor de este polyfill afirma que "funciona en casi cualquier navegador que pueda imaginar", pero de acuerdo con los comentarios que no es cierto para IE11, sin embargo, IE11 tiene soporte nativo, al igual que la mayoría de los navegadores modernos
Placeholders.js es el mejor polyfill de marcador de posición que he visto, es liviano, no depende de JQuery, cubre otros navegadores más antiguos (no solo IE) y tiene opciones para ocultar marcadores de posición de entrada y ejecución única.
fuente
Yo uso jquery.placeholderlabels . Se basa en esto y se puede mostrar aquí .
funciona en ie7, ie8, ie9.
El comportamiento imita el comportamiento actual de Firefox y Chrome, donde el texto del "marcador de posición" permanece visible en el foco y solo desaparece una vez que se escribe algo en el campo.
fuente
Creé mi propio complemento jQuery después de sentirme frustrado porque las cuñas existentes ocultarían el marcador de posición en foco, lo que crea una experiencia de usuario inferior y tampoco coincide con la forma en que Firefox, Chrome y Safari lo manejan. Este es especialmente el caso si desea que una entrada se enfoque cuando una página o ventana emergente se carga por primera vez, sin dejar de mostrar el marcador de posición hasta que se ingrese el texto.
https://github.com/nspady/jquery-placeholder-labels/
fuente