knipperende cursor in invoervak?
Gewijzigd op 01/01/1970 01:00:00 door Roos
Om een knipperende cursor in een tekstveld te krijgen, wijzig je je body naar:
<body onload="document.mailform.titel.focus();">
Dus bijvoorbeeld:
<form method="post" action="#" name="mailform">
<input type="text" name="titel" value="" />
</form>
@ Bas: het is in JS beter om met id's te werken dan met name's. IE pakt het wel, maar FF en Opera niet.
Sorry Bas, ik dacht dat een form ook onder de php viel......
Iemand nog een idee?
Code (php)
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
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>blabla</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" media="screen">
@import "style.css";
</style>
<script type="text/javascript">
function init () {
// heeft de pagina wel formulieren?
if (document.forms.length > 0) {
// ja dus. nu het aantal formulierelementen bepalen
var n = document.forms[0].elements.length;
for (i = 0; i < n; i++) {
// het eerste veld type 'text' dat we tegenkomen, krijgt de focus
if (document.forms[0].elements[i].type == 'text') {
var first_field = document.forms[0].elements[i];
// dit lijkt een beetje overdreven, maar anders werkt het niet in Opera
first_field.blur ();
first_field.focus ();
first_field.select ();
break;
}
}
}
}
window.onload = init;
</script>
</head>
<body>
<div id="container">
<fieldset>
<legend>Formpje</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" />
<input type="submit" value="Go!" />
</form>
</div>
</body>
</html>
<html>
<head>
<title>blabla</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" media="screen">
@import "style.css";
</style>
<script type="text/javascript">
function init () {
// heeft de pagina wel formulieren?
if (document.forms.length > 0) {
// ja dus. nu het aantal formulierelementen bepalen
var n = document.forms[0].elements.length;
for (i = 0; i < n; i++) {
// het eerste veld type 'text' dat we tegenkomen, krijgt de focus
if (document.forms[0].elements[i].type == 'text') {
var first_field = document.forms[0].elements[i];
// dit lijkt een beetje overdreven, maar anders werkt het niet in Opera
first_field.blur ();
first_field.focus ();
first_field.select ();
break;
}
}
}
}
window.onload = init;
</script>
</head>
<body>
<div id="container">
<fieldset>
<legend>Formpje</legend>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" />
<input type="submit" value="Go!" />
</form>
</div>
</body>
</html>
Ja inderdaad bovenstaand script gaat goed, ik ga het nu uitproberen in mijn eigen formulier 's kijken of ik dat voor elkaar krijg
@ Roos: hoe ziet jouw html er uit?
ligt denk ik inderdaad aan mijn html, sommige velden in het formulier zijn hidden dat zal er wel mee te maken hebben.....
Mijn script pakt het eerst tekstveld in je formulier.
Een paar uur later:
"ik heb dit aangepast":
for (i = 4; i < n; i++)
(de 4 was oorspronkelijk een 0)
en het werkt!!!
Bedankt mensen!
Gewijzigd op 01/01/1970 01:00:00 door Roos
Het invoervak met de knipperende link staat vrij onderaan op de pagina.
Wanneer ik nu de pagina open begint ie niet netjes bovenaan maar halverwege zodat gelijk het knipperende invoervak in beeld komt en dat is niet de bedoeling.
De pagina moet gewoon bovenaan openen en wanneer je naar beneden scrollt zie je vanzelf dat invoervak wel.
Iemand nog een idee??
Dat lijkt me niet te doen, want zodra een element de focus krijgt, scrollt een pagina er naartoe.
Je kunt met javascript ook de scrollbalken omhoog schuiven.
Klopt, dat kan. Maar als een formulier buiten beeld staat op de pagina lijkt het me niet veel zin hebben om een bepaald veld de focus te geven. De gebruiker zal het in eerste instantie niet zien, dus heeft er niets aan.