HTML, как очистить ввод с помощью javascript?

У меня есть этот INPUT, он будет очищаться каждый раз, когда мы нажимаем внутри него.

Проблема: я хочу очистить, только если значение = [email protected]

<script type="text/javascript">
    function clearThis(target) {
        target.value= "";
    }
</script>
<input type="text" name="email" value="[email protected]" size="30" onfocus="clearThis(this)">

Может ли кто-нибудь помочь мне сделать это? Не знаю как сравнить, пробовал уже, но безрезультатно.


person Lucas Ferraz    schedule 21.06.2013    source источник
comment
Вы ищете атрибут placeholder.   -  person SLaks    schedule 21.06.2013
comment
IE8 по своей сути не поддерживает атрибут placeholder   -  person Vikram    schedule 05.09.2014


Ответы (8)


<script type="text/javascript">
    function clearThis(target) {
        if (target.value == '[email protected]') {
            target.value = "";
        }
    }
</script>

Это действительно то, что вы ищете?

person David Scott    schedule 21.06.2013

Для меня это лучший способ:

<form id="myForm">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br><br>
  <input type="button" onclick="myFunction()" value="Reset form">
</form>

<script>
function myFunction() {
    document.getElementById("myForm").reset();
}
</script>
person Juan Prendas    schedule 25.05.2020
comment
Добро пожаловать в СО! Пожалуйста, рассмотрите возможность добавления объяснения того, почему вы думаете, что это будет решением вопроса ОП, поскольку он связан со сбросом входного значения при определенных условиях. Это особенно важно, поскольку другие ответы уже охватывают вопрос. Взгляните на ответы на рекомендации. - person Oleg Valter; 25.05.2020

вы можете использовать атрибут placeholder

<input type="text" name="email" placeholder="[email protected]" size="30" />

или попробуйте это для старых браузеров

<input type="text" name="email" value="[email protected]" size="30" onblur="if(this.value==''){this.value='[email protected]';}" onfocus="if(this.value=='[email protected]'){this.value='';}">
person Bugaloo    schedule 21.06.2013
comment
А как насчет IE 9 и старше? - person Ian; 21.06.2013

Вы можете использовать заполнитель, потому что он делает это за вас, но для старых браузеров, которые не поддерживают заполнитель, попробуйте следующее:

<script>
function clearThis(target) {
    if (target.value == "[email protected]") {
        target.value = "";
    }
}
function replace(target) {
    if (target.value == "" || target.value == null) {
        target.value == "[email protected]";
    }
}
</script>
<input type="text" name="email" value="[email protected]" size="x" onfocus="clearThis(this)" onblur="replace(this)" />

ОБЪЯСНЕНИЕ КОДА: когда текстовое поле находится в фокусе, очистите значение. Когда текстовое поле не сфокусировано И когда поле пусто, замените значение.

Я надеюсь, что это сработает, у меня была такая же проблема, но потом я попробовал это, и это сработало для меня.

person SubLock69    schedule 10.03.2016

Вам не нужно беспокоиться об этом. Просто пиши

<input type="text" name="email" placeholder="[email protected]" size="30">

заменить значение заполнителем

person Duck    schedule 14.03.2014

вместо очистки текста имени используйте атрибут placeholder, это хорошая практика

<input type="text" placeholder="name"  name="name">
person Sai Gopi Me    schedule 09.11.2017

Попробуй это :

<script type="text/javascript">
function clearThis(target){
    if(target.value == "[email protected]")
    {
        target.value= "";
    }
}
</script>

person Raitom    schedule 21.06.2013

<script type="text/javascript">
    function clearThis(target){
        if (target.value === "[email protected]") {
            target.value= "";
        }
    }
    </script>
<input type="text" name="email" value="[email protected]" size="30" onfocus="clearThis(this)">

Попробуйте здесь: http://jsfiddle.net/2K3Vp/

person Adam    schedule 21.06.2013