valor texto predeterminado poner funcion dentro boton borrar ayuda javascript html input default-value

javascript - poner - Eliminar el valor predeterminado de un texto de entrada al hacer clic



poner valor a un input javascript (13)

¿Por qué eliminar el valor? es útil, pero ¿por qué no probar CSS

input[submit] { font-size: 0 !important; }

El valor es importante para verificar y validar tu PHP

Tengo un texto de entrada:

<input name="Email" type="text" id="Email" value="[email protected]" />

Quiero poner un valor predeterminado como "¿Cuál es su pregunta de programación? Sea específico". en StackOverFlow, y cuando el usuario hace clic en él, desaparece el valor predeterminado.


Aquí es muy simple javascript. Funciona bien para mí :

function sFocus (field) { if(field.value == ''Enter your search'') { field.value = ''''; } field.className = "darkinput"; } function sBlur (field) { if (field.value == '''') { field.value = ''Enter your search''; field.className = "lightinput"; } else { field.className = "darkinput"; } }


Aquí hay una manera fácil.

#animal representa cualquier botón del DOM.
#animal-value es la identificación de entrada que se está segmentando.

$("#animal").on(''click'', function(){ var userVal = $("#animal-value").val(); // storing that value console.log(userVal); // logging the stored value to the console $("#animal-value").val('''') // reseting it to empty });


Aquí hay una solución jQuery. Siempre dejo que el valor predeterminado vuelva a aparecer cuando un usuario borra el campo de entrada.

<input name="Email" value="What''s your programming question ? be specific." type="text" id="Email" value="[email protected]" /> <script> $("#Email").blur( function (){ if ($(this).val() == "") $(this).val($(this).prop("defaultValue")); } ).focus( function (){ if ($(this).val() == $(this).prop("defaultValue")) $(this).val(""); } ); </script>


Esto es algo más limpio, creo. Tenga en cuenta el uso de la propiedad "defaultValue" de la entrada:

<script> function onBlur(el) { if (el.value == '''') { el.value = el.defaultValue; } } function onFocus(el) { if (el.value == el.defaultValue) { el.value = ''''; } } </script> <form> <input type="text" value="[some default value]" onblur="onBlur(this)" onfocus="onFocus(this)" /> </form>


Ingrese lo siguiente dentro del etiqueta, simplemente agrega onFocus = "value = ''''" para que tu código final se vea así:

<input type="email" id="Email" onFocus="value=''''">

Esto hace uso del titular del evento javascript onFocus ().


No vi respuestas realmente simples como esta, así que tal vez ayude a alguien.

var inputText = document.getElementById("inputText"); inputText.onfocus = function(){ if (inputText.value != ""){ inputText.value = "";}; } inputText.onblur = function(){ if (inputText.value != "default value"){ inputText.value = "default value";}; }


Para referencia futura, tengo que incluir la forma HTML5 de hacerlo.

<input name="Email" type="text" id="Email" value="[email protected]" placeholder="What''s your programming question ? be specific." />

Si tiene un doctype HTML5 y un navegador compatible con HTML5, esto funcionará. Sin embargo, muchos navegadores actualmente no lo admiten , por lo que al menos los usuarios de Internet Explorer no podrán ver su marcador de posición. Sin embargo, consulte http://www.kamikazemusic.com/quick-tips/jquery-html5-placeholder-fix/ ( versión de archive.org ) para obtener una solución. Al usar eso, será muy moderno y compatible con los estándares, a la vez que brinda la funcionalidad a la mayoría de los usuarios.

Además, el enlace provisto es una solución bien probada y bien desarrollada, que debería funcionar de inmediato.


Solo use una etiqueta de placeholder en su entrada en lugar de value


Usando jQuery, puedes hacer:

$("input:text").each(function () { // store default value var v = this.value; $(this).blur(function () { // if input is empty, reset value to default if (this.value.length == 0) this.value = v; }).focus(function () { // when input is focused, clear its contents this.value = ""; }); });

Y podría incluir todo esto en un complemento personalizado, así:

jQuery.fn.hideObtrusiveText = function () { return this.each(function () { var v = this.value; $(this).blur(function () { if (this.value.length == 0) this.value = v; }).focus(function () { this.value = ""; }); }); };

Así es como usaría el complemento:

$("input:text").hideObtrusiveText();

Las ventajas de usar este código son:

  • Es discreto y no contamina el DOM
  • Reutilización de código: funciona en múltiples campos
  • Calcula el valor predeterminado de las entradas por sí mismo



Enfoque no jQuery:

function hideObtrusiveText(id) { var e = document.getElementById(id); var v = e.value; e.onfocus = function () { e.value = ""; }; e.onblur = function () { if (e.value.length == 0) e.value = v; }; }



<input name="Email" type="text" id="Email" placeholder="enter your question" />

El atributo de marcador de posición especifica una breve sugerencia que describe el valor esperado de un campo de entrada (por ejemplo, un valor de muestra o una breve descripción del formato esperado).

La sugerencia corta se muestra en el campo de entrada antes de que el usuario ingrese un valor.

Nota: El atributo marcador de posición funciona con los siguientes tipos de entrada: texto, búsqueda, url, teléfono, correo electrónico y contraseña.

Creo que esto ayudará.


EDITAR : Aunque esta solución funciona, le recomendaría que pruebe la solución de MvanGeest a continuación, que utiliza el placeholder y un respaldo de javascript para los navegadores que aún no lo admiten.

Si está buscando un Mootools equivalente a la reserva de JQuery en la respuesta de MvanGeest, aquí hay uno .

-

Probablemente deberías usar los eventos onfocus y onblur para ayudar a los usuarios de teclado que se desplazan por los formularios.

Aquí hay un ejemplo:

<input type="text" value="[email protected]" name="Email" id="Email" onblur="if (this.value == '''') {this.value = ''[email protected]'';}" onfocus="if (this.value == ''[email protected]'') {this.value = '''';}" />