Usando jQuery, ¿cómo puedo agregar un valor predeterminado de http://
en un campo de entrada que no puede ser eliminado, pero que todavía permite que usted escriba una dirección URL después?
Predeterminado: http://
Url: http://www.domain.name
- Cómo agregar o no agregar valor predeterminado, que es la cuestión…
- si el usuario no especifica http:// añadir si se especifica ignore
- La puso al lado del campo de entrada, evitar la complejidad innecesaria?
- Por qué jQuery? ¿Por qué no simplemente un fondo CSS y el relleno?
- si usted está usando bootstrap salida entrada-grupos: getbootstrap.com/components/#input-groups
esto funciona bien para mí:
http://jsfiddle.net/J2BKU/
Que no es posible. Usted puede poner un valor en el campo de entrada, pero puede ser eliminado.
Usted puede poner el texto fuera del campo de entrada, que la protegen de ser eliminado, pero no se incluirá en el valor cuando el formulario es enviado.
Puede utilizar el posicionamiento absoluto para poner el campo de entrada en la parte superior del texto, y el uso de relleno en el campo para que usted comience a escribir después del texto. Ejemplo:
CSS:
HTML:
Yo tenía el mismo problema y resuelto sin el uso de jquery, de la simple CSS y HTML. La solución se ve elegante y el usuario será inmediatamente a entender cómo funciona.
Utilizar el siguiente código html:
CSS:
HTML:
El resultado será parecido a este (copia el resultado de mi script, por lo que no dice http://):
Tenga en cuenta que usted sólo tiene que anteponer http://en su guión, pero que va a hacer que funcione a la perfección.
Esto es sólo a mí a jugar, pero usted puede hacer una falso extensión del cuadro de texto. En este ejemplo, básicamente, las chuletas de fuera del borde izquierdo de la caja de texto y se concatena un falso cuadro de texto a la izquierda.
Sólo funciona en Chrome AFAICT. Usted tendrá que añadir condicional hojas de estilo para cada navegador si te decides por este método.
http://jsfiddle.net/G9Bsc/1/
Todo probado!
JS:
HTML:
He visto algunos de formularios web forms incluya este valor fuera del campo, por ejemplo,
Pero si usted está empeñado en hacer valer el valor a través de JavaScript (y tenga en cuenta que los usuarios pueden activar JavaScript desactivado), usted podría escribir una función que se activa cada vez que el usuario escribe en el campo, y añade
http://
para el inicio del campo si no lo hay. E. g.HTML:
JavaScript:
http://
así.keyup
sólo se aplica a la entrada de teclado, no los teclados en pantalla, copiar-pegar, arrastrar y soltar, voz…).input
es el «general» evento diseñado para disparar si el valor de un<input>
se cambia de ninguna manera, pero todavía no se dispara cuando se modifican con JS (por ejemplo, mediante una tecnología de asistencia de la extensión del navegador).Comprobar este formato util y un prefijo de la aplicación para ello:
input
evento (teclado, ratón, arrastrar-n-gota, etc.)JS:
CSS:
HTML:
Puro CSS solución basada en la hicimos etiqueta div y span entrada de combinación, por favor consulte la siguiente manera
CSS:
HTML:
Hay una forma de hacerlo en javascript, pero me temo que es más problemas de lo que vale.
Sin embargo, si usted está seguro de que el texto no va a cambiar con el tiempo, usted puede utilizar un CSS imagen de fondo para la entrada de texto que es una imagen de su texto » http://‘. A continuación, puedes agregar algunos padding-left hasta la entrada del usuario comienza justo al lado del final de su imagen.
Si usted insiste en la ‘http://’ siendo el valor por defecto, añadir el atributo «value» de la etiqueta de entrada:
Permitir a los usuarios eliminar si se desea, sin embargo, validar cuando el formulario es enviado. (jQuery validation plugin)
No tan limpio, pero no permitir a los usuarios eliminar el prefijo
No estoy seguro acerca de jQuery, pero en la llanura JS, usted puede tratar de detectar cuando el campo de los cambios y si el cambio de alguna manera arruinado el prefijo, agregar de nuevo (no es 100% infalible – si usted quiere, usted tiene que sólo hay que poner el «http://» en un espacio fuera del campo de entrada y añadir más tarde mediante programación):
Por favor, tenga en cuenta que un extraño comportamiento es realmente confuso para el usuario sin explicación explícita de antemano, O un pop-up (puede ser no-modal uno) explicando que corrigió su error para él.
JS:
HTML:
ACTUALIZACIÓN: Guillaumesm la respuesta de Ecmascript 5:
Esto es para el cuadro de texto, si el usuario olvidó poner http://a continuación, se añade en otro caso no.