Toon posts:

[JS] Vage meldingen in IE blijven

Pagina: 1
Acties:

Verwijderd

Topicstarter
Situatie: een webpagina met een tekstveldje in een formulier om een searchstring op te geven. PHP-script zoekt dan in de database en schrijft een nieuwe pagina maar dan wordt het formulier uitgebreid met een <select> met de zoekresultaten.

Als er nog niet gezocht is moet de cursor in het zoekveld komen, is er wel gezocht (m.a.w.: die <select> bestaat) dan moet de cursor in het keuzeveld komen. Daarvoor heb ik dit stukje code:
code:
1
2
3
4
5
6
7
8
<script language="javascript">
  // focus op zoekvak of op lijst als er al gezocht is
  if (document.neworder1.klantid) {
    document.neworder1.klantid.focus()
  } else {
    document.neworder1.klantsearch.focus()
  }
</script>

Werkt allemaal prima op zich maar ik krijg toch iedere keer de volgende error in IE:
Error: 'document.neworder1.klantsearch' is leeg of geen object
De gebruikte namen voor velden en formulieren kloppen allemaal, ook heb ik de search en Google al gebruikt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Javascript is geen P&W mar W&G.
P&W -> W&G

https://fgheysels.github.io/


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Post de rest van de code ook eens.. of beter nog, een linkje :)

Verwijderd

Topicstarter
Euhmz.... linkje zal niet gaan --> lokale webserver voor ontwikkeling.

Code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Nieuwe order aanmaken :: STAP 1</title>
</head>
<body>
<h2>ORBS :: nieuwe order aanmaken</h2>
<form method="POST" action="neworder1.php" target="_self" name="neworder1">
  <table border="0" width="95%" cellpadding="0" cellspacing="0">
    <tr>
    <td width="25%">
      <p align="center"><input type="text" name="klantsearch" size="20" tabindex="1">
      <p align="center"><input type="submit" value="Zoek klant!" name="submit" tabindex="3"></td>
    <td width="75%">

<?php
include('../inc/databaselink.inc.php');
$orbsconn = orbs_db_connect();

if (@$_POST['klantsearch']) { 
  echo '<select size="5" name="klantid" tabindex="2">';
  echo '<option value="" selected>Resultaten van de zoekopdracht, selecteer de gewenste klant...</option>';
  $query  = "SELECT klantid, naam FROM klanten WHERE naam LIKE '%".addslashes($_POST['klantsearch'])."%';";
  $result = mysql_query($query, $orbsconn);
  $num    = mysql_num_rows($result);
  
  for ($i=0; $i < $num; $i++) {
    $row = mysql_fetch_array($result);
    echo "<option value=\"".$row['klantid']."\">".$row['naam']."</option>\n";
  }//for $i
  echo '</select></td>';
}//klantsearch

if ((@$_POST['klantid'] <> "") && (!@$_POST['klantsearch'])) {
  $query  = "SELECT naam, adres, pplaats, telefoon FROM klanten WHERE klantid=".$_POST['klantid']." ORDER BY naam;";
  $result = mysql_query($query, $orbsconn);
  $row    = mysql_fetch_array($result);
  echo "<h3>U koos:</h3><p><b>".$row['naam']."</b><br>".$row['adres']."<br>".$row['pplaats']."<br>".$row['telefoon']."</p>";
}//klantid


?>
   
    </tr>
  </table>
</form>

<script language="javascript">
  // focus op zoekvak of op lijst als er al gezocht is
  if (document.neworder1.klantid) {
    document.neworder1.klantid.focus()
  } else {
    document.neworder1.klantsearch.focus()
  }
</script>

</body>
</html>

Mmmmz... kan niet vinden, ga denk ik maar even Windows Update draaien en IE-patches installeren.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Hmm.. en nu de code zoals de gegenereerd wordt.. want PHP kennen we hier niet ;)

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
Op woensdag 10 juli 2002 10:25 schreef Bosmonster het volgende:
Hmm.. en nu de code zoals de gegenereerd wordt.. want PHP kennen we hier niet ;)
Jij doet je sig geen eer aan >:)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Bosmonster:
Hmm.. en nu de code zoals de gegenereerd wordt.. want PHP kennen we hier niet ;)
:D :D luie donder ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Ben eruit denk ik: na wat geherstart en geupdate lijkt alles weer koek en ei te zijn. Toch maar eens bellen met die Billie G. wat dit nu weer is.

Gegenereerde code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Nieuwe order aanmaken :: STAP 1</title>
</head>
<body>
<h2>ORBS :: nieuwe order aanmaken</h2>
<form method="POST" action="neworder1.php" target="_self" name="neworder1">
  <table border="0" width="95%" cellpadding="0" cellspacing="0">
    <tr>
    <td width="25%">
      <p align="center"><input type="text" name="klantsearch" size="20" tabindex="1">
      <p align="center"><input type="submit" value="Zoek klant!" name="submit" tabindex="3"></td>
    <td width="75%">

<select size="5" name="klantid" tabindex="2"><option value="" selected>Resultaten van de zoekopdracht, selecteer de gewenste klant...</option><option value="3030">TAPES HILVERSUM</option>
<option value="44">****</option>
<option value="44">****</option>
<option value="44">****</option>
<option value="44">****</option>
<option value="44">****</option>
<option value="44">****</option>
<option value="44">****</option>
</select></td>   
    </tr>
  </table>
</form>

<script language="javascript">
  // focus op zoekvak of op lijst als er al gezocht is
  if (document.neworder1.klantid) {
    document.neworder1.klantid.focus()
  } else {
    document.neworder1.klantsearch.focus()
  }
</script>

</body>
</html>

Klantgegevens en codes zijn onherkenbaar gemaakt (44 en ****).

Voor de duidelijkheid: ik heb nu dus geen foutmeldingen meer.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

zet ten eerste het script even in je head in een functie, en roep de functie aan door het onload event in je body te zetten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<head>
   <script type="text/javascript">

   function focusIt () {
    // ...
   }

   </script>
</head>

<body onload="focusIt ()">
   <!-- ... -->
</body>

</html>

edit:
* drm moet beter lezen, 't werkte al :z

desalniettemin toch wel zo netjes om 't met onload te doen :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1