2011-03-16 46 views
9

que desea borrar el campo de texto cuando el usuario hace clic en eseCómo borrar campo de texto en el foco del campo de texto

<input name="name" type="text" id="input1" size="30" maxlength="1000" value="Enter Postcode or Area" onfocus=="this.value=''" />

+2

Por favor, no hagas eso. Si quiero corregir una carta mal escrita, no quiero tener que volver a escribir todo. (La mayoría de las personas que quieren hacer esto están utilizando indebidamente el atributo value para reemplazar un elemento '

+0

¿Puede hacer uso de jQuery? –

+1

¿Esto borra un valor predeterminado o texto de muestra que aparece inicialmente en el formulario? –

Respuesta

9

Para hacer esto usted tendrá que utilizar un lenguaje de script, probablemente Javascript. Aquí un ejemplo

<input type='text' value'Some text' onclick='javascript: this.value = ""' /> 

Espero que esto ayude.

Editar:

Para hacer frente a lo que David es explicar aquí es un segundo ejemplo en el caso de que es lo que busca

<script type='javascript'> 
    var clear = true; 
    function clear(obj) 
    { 
     if(clear) 
     { 
      obj.value = ''; 
      clear = false; 
     } 
    } 
</script> 

<input type='text' value'Some text' onfocus='clear(this);' /> 
+0

gracias esto funciona para mí –

+0

Aconsejaría que nadie use este método. Es una manera terrible de hacer esto. Por favor no use este método. El problema con este ejemplo es que cada vez que alguien hace clic en esta entrada, se borrará el contenido. Incluso si el usuario escribe algo y luego regresa para editar el campo, el texto se borrará. Otro problema es que si un usuario hace pestañas en la entrada, no se "hace clic" en el contenido y, por lo tanto, no se borra. Con ambos problemas, este ejemplo es una manera terrible de resolver este problema y crea todo tipo de problemas de accesibilidad. – ORyan

+0

@ORyan, Este código inicial fue la respuesta a la pregunta inicial. Después de que se proporcionó más información, se editó la respuesta y en ese ejemplo, la prueba solo se borra en el primer clic. Así que no creo que sea terrible. Sí, solo hizo un clic, así que lo actualicé para que pueda dormir mejor esta noche. –

2

Puede utilizar <input ... onfocus="this.value='';"/>.

De esta manera, el campo se borrará cuando gane el foco. Sin embargo, si solo desea borrarlo cuando el usuario hace clic en él (es decir, no cuando el campo se enfoca con el teclado, por ejemplo), utilice onclick en lugar de onfocus.

Sin embargo, como señaló David Dorward en un comentario, este comportamiento puede no ser esperado por el usuario. Por lo tanto, tenga cuidado de configurar esta función en campos realmente específicos (como el campo de búsqueda).

5

El uso de la biblioteca jQuery:

<input id="clearme" value="Click me quick!" /> 

$('#clearme').focus(function() { 
    $(this).val(''); 
}); 
18

A menos que usted está haciendo algo específico en el que sólo desea borrar onclick , Sugeriría (como han señalado otros) usar las acciones de enfoque en su lugar. De esta forma, si alguien está utilizando la pestaña para navegar, también borrará el texto predeterminado.

También puede utilizar onBlur para comprobar si está vacío para que vuelva:

<input type="text" value="Default text" name="yourName" onfocus="if(this.value == 'Default text') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Default text'; }"> 
1

Ésta es la forma en que lo uso para un convertidor de temperatura/calculadora - cuando el usuario teclea (keyup), la entrada de texto caja calcula usando la función asignada; cuando el usuario selecciona la otra entrada de texto (solo hay dos entradas), la entrada de texto seleccionado se borrará.

HTML:

<p class="celcius"><h2 style="color:#FFF">Input:</h2> 
    <input name="celsius" type="text" class="feedback-input" placeholder="Temperature (Celsius)" onkeyup="Conversion()" onfocus="this.value='';" id="celsius" /> 
</p> 

    <hr> 

    <h2 style="color:#FFF">Result:</h2> 

<p class="fahrenheit"> 
    <input name="fahrenheit" type="text" class="feedback-input" id="fahrenheit" onkeyup="Conversion2()" onfocus="this.value='';"placeholder="Temperature (Fahrenheit)" /> 
    </p> 

JavaScript:

function Conversion() { 
    var tempCels = parseFloat(document.getElementById('celsius').value); 
     tempFarh =(tempCels)*(1.8)+(32); 
     document.getElementById('fahrenheit').value= tempFarh; 
} 

function Conversion2() { 
    var tempFarh = parseFloat(document.getElementById('fahrenheit').value); 
     tempCels =(tempFarh - 32)/(1.8); 
     document.getElementById('celsius').value= tempCels; 
} 
0

probar esto, que trabajó para mí

añadir esto en su etiqueta de entrada

<code> 
onfocus="this.value='';"</code> 

por ejemplo, si su código es

<code> 
<input type="text" value="Name" /></code> 

utilizar de esta manera

<code><input onfocus="this.value='';" type="text" value="Name" /></code> 
0
function Clear (x) {if (x.cleared) {} else {x.value = ""; x.cleared = true}} 

onfocus = "Clear (this)" 
+0

Por favor, agrega un poco explicación. –

+0

Realmente no puedo ver el punto; - o el código es transparente o el lector aún no está lo suficientemente informado como para poder utilizarlo. Está pensado como una respuesta, no como un tutorial. –

+0

Algunas palabras de explicación harían este ejemplo aún mejor. – Thom

2

o simplemente puede usar el atributo marcador de posición Por ejemplo <input name="name" type="text" id="input1" size="30" maxlength="1000" placeholder="Enter Postcode or Area"/>

+0

A [truco simple de CSS] (https://css-tricks.com/snippets/css/style-placeholder-text/) incluso puede darle estilo al marcador de posición en el navegador reciente. En Chrome: ':: - webkit-input-placeholder {color: # 000;}' – Alrekr

0

Añadir un siguiente script a su archivo js:

var input1 = document.getElementById("input1") 

input1.onfocus = function() { 
    if(input1.value == "Enter Postcode or Area") { 
     input1.value = ""; 
    } 
}; 

input1.onblur = function() { 
    if(input1.value == "") { 
     input1.value = "Enter Postcode or Area"; 
    } 
}; 
Cuestiones relacionadas