2011-07-19 16 views
10

Así que tengo un campo de entrada, si está en blanco, quiero que su valor sea "vacío", pero si hay algún valor ingresado, I quiere que el valor sea el valor ingresado. Quiero usar javascript para esto, ¿alguna idea de cómo se puede hacer esto?Si el valor de entrada es en blanco, asigne un valor de "vacío" con Javascript

ACTUALIZACIÓN: Lo siento, no creo que lo haya explicado demasiado bien. No me refiero al texto del marcador de posición. Me refiero al valor capturado de eso. Así que si es blanco, el val capturado() para los que debería ser "vacío", si está lleno, el val capturado() para ello debe ser que val()

+0

http://stackoverflow.com/questions/108207/how-do-i-make-an-html-text-box-show-a-hint-when-empty – Joe

Respuesta

19

Si está utilizando JS puros sólo tiene que hacerlo como:

var input = document.getElementById('myInput'); 

if(input.value.length == 0) 
    input.value = "Empty"; 

He aquí una demostración: http://jsfiddle.net/nYtm8/

+0

Ganancias más cortas y simples :) ¿Es diferente si en lugar de input.value.length == 0, ponemos input.value == ''? – Maverick

+0

Por lo general, me resulta preferible probar contra números en lugar de cadenas, pero seguro, usted también puede hacerlo :) –

+2

Dado que el atributo 'value' es siempre una cadena, simplemente'! Input.value' siempre será siempre correcto (porque solo las cadenas vacías obligan a 'false'). – katspaugh

1

Usted puede hacer esto:

var getValue = function (input, defaultValue) { 
    return input.value || defaultValue; 
}; 
+0

Esto es genial, pero solo para HTML 5 ¿verdad? –

+0

@Jamie Dixon, sí, lo fue. – katspaugh

2

se puede establecer una llamada de retorno para el evento onSubmit de la forma y comprobar el contenido de cada campo Si no contiene nada a continuación, puede llenarlo con la cadena "vacío":

<form name="my_form" action="validate.php" onsubmit="check()"> 
    <input type="text" name="text1" /> 
    <input type="submit" value="submit" /> 
</form> 

y en sus JS:

function check() { 
    if(document.forms["my_form"]["text1"].value == "") 
     document.forms["my_form"]["text1"].value = "empty"; 
} 
4

supongo que esto es lo que quiere ...

Cuando se envía el formulario, verifique si el valor está vacío y, de ser así, envíe un valor = vacío.

Si es así, puede hacer lo siguiente con jQuery.

$('form').submit(function(){ 
    var input = $('#test').val(); 
    if(input == ''){ 
     $('#test').val('empty'); 
    }  
}); 

HTML

<form> 
    <input id="test" type="text" /> 
</form> 

http://jsfiddle.net/jasongennaro/NS6Ca/

Haga clic en el cursor en la caja y luego pulsa enter para ver la forma de presentar el valor.

+0

Gracias Jason, sin embargo, estaba tratando de lograrlo con javascript solo :) – Maverick

2

Esto se puede hacer utilizando placeHolder de HTML5 o usando JavaScript. Pago this post.

1

Creo que la manera más fácil de resolver este problema, si solo lo necesita en 1 o 2 cuadros es mediante el uso de la función "onsubmit" de la entrada HTML.

mira esto y voy a explicar lo que hace:

<input type="text" name="val" onsubmit="if(this == ''){$this.val('empty');}" /> 

Por lo tanto, hemos creado el cuadro de texto HTML, asignado un nombre ("val" en este caso) y luego se agregó el onsubmit código, este código comprueba si el cuadro de entrada actual está vacío y, si lo está, luego, al enviar el formulario, lo rellenará con las palabras vacías.

Atención:, este código también debería funcionar perfectamente cuando se utiliza la etiqueta HTML "marcador de posición" como la etiqueta del marcador de posición en realidad no asignar un valor a la caja de entrada.

Cuestiones relacionadas