Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[IE + javascript] render probleem met inputbox

Pagina: 1
Acties:

  • mafti
  • Registratie: Januari 2003
  • Laatst online: 11-11-2022

mafti

Kopyright Liberation Front

Topicstarter
Hallo,

het volgens is mijn probleem.

ik heb een soort van auto-complete in een inputbox.
is de text die erbij komt kort, dan is er niets aan de hand.
is de text erg lang dan "schuift" de tekst een klein tikje naar links, waardoor
de eerst letter niet meer te zien is.
het idee is, dat de tekst die erbij komt geselecteerd is en als je dus verder tikt, het simpelweg verdwijnt.

wie kan mij helpen om dit te fixen?

hier mijn vluchtige testcode.

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Issue #1669 Test</title>
</head>
<body>

<script type="text/javascript">
    var bFirst = true;
    
    function testme(objID)
    {
        
        var strValue = document.getElementById(objID).value;
        if ((strValue.length == 3) && (bFirst))
        {
            var strAddText = "korte text";
            switch (strValue)
            {
                case "ZZZ" : strAddText = "nog meer text en al dat andere soort valderie valdera";
                            break;
                default: break;
            }
            document.getElementById(objID).value += strAddText;
            var startPos = 3;
            var endPos = document.getElementById(objID).value.length;
            
            if (document.all)
            {
                //IE-strange
                var lg=document.getElementById(objID).createTextRange();
                lg.collapse(true);
                lg.moveEnd("character",endPos);
                lg.moveStart("character",startPos);
                lg.select();
            }
            else
            {
                document.getElementById(objID).setSelectionRange(startPos,startPos+endPos);
            }
            bFirst = false;
        } 
        else if (strValue.length == 0)
        {
            bFirst = true;
        }
    }
</script>
<b>TESTCASE 1</b>
<p>
type in ZZZ to generate a long text
</p>
<input type="text" id="longInput" value="" onkeyup="testme('longInput')" />

</body>
</html>

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
achter lg.select(); zetten:
code:
1
document.getElementById(objID).scrollLeft = 0


dat lost je probleem op volgens mij.

[ Voor 26% gewijzigd door marty op 26-08-2008 16:21 ]


  • mafti
  • Registratie: Januari 2003
  • Laatst online: 11-11-2022

mafti

Kopyright Liberation Front

Topicstarter
ugh, zo simpel...

enfin, dank je. ik heb duidelijk moeilijker gezocht :)