[JS] OnChange werkt niet in IE, wel in FF

Pagina: 1
Acties:

  • Bramster
  • Registratie: Juni 2001
  • Laatst online: 18:45
naar aanleiding van [rml][ JS] OnClick="...." bij "new Option()"[/rml]

Het script werkt perfect, totdat ik het probeerde in IE
het gebeuren word zo aangeropen:
JavaScript:
1
<form name='frm' onChange="chkSelected();">


die gaat dan naar deze:
JavaScript:
1
2
3
4
5
6
function chkSelected()
{
var lstText = "B-" + document.frm.result.options[document.frm.result.selectedIndex].text;

copy_clip(lstText);
}

die dan weer doorgaat naar het script wat de boel in het klembord pleurt:
JavaScript:
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
function copy_clip(text2copy)
{
    var userAgent = self.navigator.userAgent;
    
    if (window.clipboardData) 
    {
       window.clipboardData.setData("Text", text2copy);
    }
    else if ((userAgent.indexOf('Gecko') >= 0)) 
    { 
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
               
        var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
        if (!clip) return;
                                                     
        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
        if (!trans) return;
                                                                                                               
        trans.addDataFlavor('text/unicode');
                                                                                                                                                                   
        var str = new Object();
        var len = new Object();
        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
        var copytext=text2copy;
        str.data=copytext;
        trans.setTransferData("text/unicode",str,copytext.length*2);
        
        var clipid=Components.interfaces.nsIClipboard;
        if (!clip) return false;
        clip.setData(trans,null,clipid.kGlobalClipboard);
    }
}                                                                                                                                                                                                                                                                                                                                                                      


Ik dacht dus eerst dat er iets mis was met het IE gedeelte van copy_clip() (het "if window.clipboardData" gedeelte dus) maar na wat nader onderzoek bleek dat IE helemaal niets met de onChange() doet
JavaScript:
1
<form name='frm' onChange="alert('woei!');">
doet dus helemaal niets.

Is OnChange() soms iets alleen voor FF? of staat er toch wat fout in mijn code?

Is er misschien een andere manier om dit werkende te krijgen in IE (en dan natuurlijk ook za dat het blijft werken in FF :P)?

Ik heb al wat gezocht maar heb niet echt relevante informatie kunnen vinden

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Als ik even snel naar de HTML 4.01 specs kijk voor het FORM element, dan is 'onchange' geen onderdeel van de attributen behorende bij het FORM element...

  • Zoefff
  • Registratie: September 2001
  • Laatst online: 13-05 10:16

Zoefff

❤ 

Heb je al iets met de hoofdletters gedaan? Dus onChange / OnChange / onchange.. Ik weet dat de validator er wel moeilijk over doet, misschien dat IE er ook over struikelt :P


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 18:39

Rhapsody

In Metal We Trust

Volgens mij heeft het FORM element geen event onChange.
Wanneer zou dat event op moeten treden dan? Als er in 1 van de child-elementen (tekstvelden e.d.) een onchange event optreed?

Ik denk dat je het aan elk element afzonderlijk moet koppelen :-) Maar dat moet niet zo'n probleem zijn denk ik.


trouwens, In FF heb je ook een JavaScript debugger.. zegt die niets?

[ Voor 12% gewijzigd door Rhapsody op 22-02-2005 14:14 ]

🇪🇺 pro Europa!


  • Bramster
  • Registratie: Juni 2001
  • Laatst online: 18:45
Woudloper schreef op dinsdag 22 februari 2005 @ 13:56:
Als ik even snel naar de HTML 4.01 specs kijk voor het FORM element, dan is 'onchange' geen onderdeel van de attributen behorende bij het FORM element...
hmm, idd...
Ik heb effe verder gekeken op die site en daar staat dat onChange() wel in een <select> kan. maar mijn <select> word met JS gemaakt, enig id waar ik dan die onChange() moet laten?

het script wat de <select> maakt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function populateListPlaats(searchstringPlaats) 
{
    if(searchstringPlaats.length == 0)
        {
            searchstringPlaats = null;
        }

    while (0 < document.frm.result.options.length) 
        {
            document.frm.result.options[(document.frm.result.options.length - 1)] = null;
        }
        
    var j=0;
    for (var i=0; i < data_plaats.length; i++) 
        {           
            if(data_plaats[i].substr(0,searchstringPlaats.length).toUpperCase() == searchstringPlaats.toUpperCase()) 
                {
                    var no = new Option();
                    no.text = data_full[i]
                    document.frm.result.options[j] = no
                    j++;
                }
        }
}
Rhapsody schreef op dinsdag 22 februari 2005 @ 14:13:
Volgens mij heeft het FORM element geen event onChange.
Wanneer zou dat event op moeten treden dan? Als er in 1 van de child-elementen (tekstvelden e.d.) een onchange event optreed?

Ik denk dat je het aan elk element afzonderlijk moet koppelen :-) Maar dat moet niet zo'n probleem zijn denk ik.


trouwens, In FF heb je ook een JavaScript debugger.. zegt die niets?
Het script moet in actie komen op het moment dat ik een item uit de select list aanklik (en dat gebeurt dus ook mooi in FF)
Beetje raar eigenlijk dat de onChange() niets doet als ik de text verander in de 2 input boxen die in dezelfde form staat, reageert alleen bij het selecteren van een item uit de <select>
en de JS debugger laat helemaal niets zien


@zoefff:
hoofdletters maken niets uit

[ Voor 30% gewijzigd door Bramster op 22-02-2005 14:18 ]