2009-08-24 23 views
16

¿Hay alguna manera de obtener un campo <input /> en HTML para ajustar las líneas si el texto es más largo que el campo que usa CSS? No quiero usar <textarea />, ya que quiero evitar que los usuarios ingresen líneas de salto duras presionando Enter.<input> capacidad multilínea a través de CSS

Respuesta

25

No, lo siento. <input type=text> es una sola línea por definición. Ver el documento W3C Forms in HTML Documents:

text 
    Creates a single-line text input control. 
3

Usando control de formulario TextArea Dígito de Dojo, con sede fuera TextArea, puede tener un campo de entrada que comienza como una sola línea y se expande a medida que el usuario se agrega a él.

Ver its documentation.

3

No puede hacer lo que quiera con CSS solo, pero puede usar JavaScript para evitar que el usuario ingrese saltos de línea en un campo <textarea>.

+0

Eso no es lo que él quería. – aehlke

+6

Él quiere una entrada que se envuelve. Eso me suena como un cuadro de texto. Simplemente no quería que el usuario pudiera ingresar saltos de línea, lo que podría hacer con JavaScript. –

0

Su mejor opción es utilizar un área de texto (con funciones de crecimiento automático si lo desea), y luego quitar las nuevas líneas cuando se envíe el formulario. Usar php sería algo como esto:

$text = str_replace(array("\n","\r"),'',$_POST['text_field']); 

Esto tendría el efecto deseado de bloquear caracteres de nueva línea. Como otros han señalado, no es posible obtener una entrada de varias líneas en un campo de entrada.

+0

http://www.technoreply.com/autogrow-textarea-plugin-version-2-0/ – Four

3

vistazo a esto, http://www.echoecho.com/htmlforms08.htm

Las opciones de ajuste son la parte más complicada de las áreas de texto. Si desactiva el ajuste, el texto se maneja como una secuencia larga de texto sin saltos de línea. Si lo configura en virtual, el texto aparece en su página como si reconociera saltos de línea, pero cuando se envía el formulario, los saltos de línea se desactivan. Si lo configura en físico, el texto se envía exactamente como aparece en la pantalla, incluidos los saltos de línea.

Cuestiones relacionadas