2013-10-12 3 views
0

У меня есть input с text. Я хочу очистить его, когда я нажимаю на него. Однако мой подход не работаетчистый ввод текста, нажав на него

<span class="input"><input type="text" id="input1" onclick="clear()"></span> 

Где clear() функция

function clear() { 
    alert(event.target.id); 
    event.target.value = ""; 
} 

Что такое правильный путь?

ответ

1

имя функции cleardoes not seem to be working. Change the function name (скажем, clearMe) и попробовать (Fiddle):

<script> 
    function clearMe(x) { 
    x.value = ""; 
} 
</script> 
<span class="input"> 
    <input type="text" id="input1" onclick="clearMe(this);" value="abcd" /> 
</span> 

Для одной линии:

<input type="text" id="input1" onclick="this.value='';" value="abcd" /> 
1

Проблема в том, что существует функция document.clear(), которая на самом деле называется вместо вашего!

В этом случае вы также увидите предупреждение в Google Chrome, так как функция устарела:

document.clear() является устаревшим. Этот метод ничего не делает.
— Google Chrome v30

Выберите другое имя: (!, Которое должно быть предпочтительным способом)

function clearA(obj) { 
    obj.value = ""; 
} 

<input type="text" id="input1" onclick="clearA(this);" /> 

Или использовать слушатель реального события:

document.getElementById("input1").addEventListener("click", function() { 
    this.value = ""; 
}; 
Смежные вопросы