Powinien wypełnić pole, ale nic nie robi, dlaczego?

<html>


<input type="button" id="phoneButton">
<input type="text" id="allQuery">


<script>
  // catch CLICKING with mouse to fill the text field
  var input = document.getElementById('phoneButton')
  input.addEventListener('click', function(e) 
  {
    document.getElementById('allQuery').value = 'hello' 
  }, false)


</script>

</html>

[Aktualizacja] ... Mój punkt nie był naprawdę literami, mam więcej takich kodu, ale znacznie dłużej i z jakiegoś powodu takie dodatki nie zauważają obiektów, z którymi są używane (np. PhoneButton). Jaki jest problem z dłuższym kodem? Jak upewnić się, że eventsListeners załadowali Var, tak, że nie zostaną wyczyszczone z pamięci podręcznej z długim kodem?

0
hhh 13 październik 2011, 22:15

4 odpowiedzi

Najlepsza odpowiedź

getElementById jest metodą document, a nie globalną funkcją.

Również upewnij się, że element #phonebutton istnieje, gdy JavaScript działa; DOMContentLoaded wydarzenie jest często pomocne.

3
duri 13 październik 2011, 18:18

Hmmm powinieneś zrobić document.getElementById('allQuery').value = 'hello'

0
Rahman Kalfane 13 październik 2011, 18:17

Spróbuj zachować odpowiedni format HTML

<html>
<head></head>
<body>
<input type="button" id="phoneButton">
<input type="text" id="allQuery">


<script type="text/javascript">
  // catch CLICKING with mouse to fill the text field
  var input = document.getElementById('phoneButton')
  input.addEventListener('click', function(e) 
  {
    document.getElementById('allQuery').value = 'hello'; 
  }, false);


</script>
</body>
</html>
0
jwchang 13 październik 2011, 18:18

AddEventlistener nie działa ze wszystkimi przeglądarkami. Polecam korzystanie z platformy JS, która streszuje niespójności z wiązaniem zdarzeń w różnych przeglądarkach takich jak jQuery.

0
Keith.Abramo 13 październik 2011, 18:18