Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Mootools] ajax.form IE fout

Pagina: 1
Acties:
  • 389 views sinds 30-01-2008
  • Reageer

  • Woef
  • Registratie: Juni 2000
  • Niet online
Ik zit met het volgende probleem:

Ik heb een formulier die ik wil verwerken via ajax en dat doe ik op de volgende manier:
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
window.addEvent('domready', function(){
            $('form1').addEvent('submit', function(e) {
                /**
                 * Prevent the submit event
                 */
                            new Event(e).stop();
            
                /**
                 * This empties the log and shows the spinning indicator
                 */
                var log = $('log_res').empty().addClass('ajax-loading');
            
                /**
                 * send takes care of encoding and returns the Ajax instance.
                 * onComplete removes the spinner from the log.
                 */
                
        
                this.send({
                  update: log,
                  evalScripts:  true,  
                    onComplete: function() {
                                        log.removeClass('ajax-loading');
                                    }
                });
                
            });
            
        });

De pagina waar naar gesubmit wordt heeft als result:
code:
1
2
3
4
5
<script type="text/javascript">
<!--
 document.form1.dns_name.style.borderColor='#FF0000';
 //-->
 </script>


In firefox geeft dit het gewenste resultaat en geeft firebug dus ook geen foutmelding.
Alleen IE6 en IE7 geven de foutmelding:
"Kan deze bewerking niet voltooien door fout: 80020101"

Deze melding krijg ik pas bij het activeren van evalScripts: true.
Zonder deze activering krijg ik ook geen foutmelding in IE6/7.

Iemand enig idee?

Edit: en ja ik heb op het forum van mootools gezocht (en tevens google), maar ook daar kon ik het probleem niet vinden

[ Voor 4% gewijzigd door Woef op 12-10-2007 21:50 ]


  • RuudBurger
  • Registratie: Oktober 2003
  • Laatst online: 26-11 11:04
kan je wat de pagina "result" niet gewoon in de onComplete gooien? of is hier iets variables ofzo?

verder zou je even kunnen proberen zonder de empty() en class changes enzo, maar gewoon alleen $('element')..

  • Woef
  • Registratie: Juni 2000
  • Niet online
Sillymidget schreef op vrijdag 12 oktober 2007 @ 21:59:
1. kan je wat de pagina "result" niet gewoon in de onComplete gooien? of is hier iets variables ofzo?

2. verder zou je even kunnen proberen zonder de empty() en class changes enzo, maar gewoon alleen $('element')..
1. Hier zit een mysql update in. Vergeten te melden.
2. ben nu niet thuis, maar ga het morgen proberen.

  • RuudBurger
  • Registratie: Oktober 2003
  • Laatst online: 26-11 11:04
uhm ja, maar hij voert nog steeds je mysql stuff uit ook zonder de evalScript hoor..
Dat is alleen maar dat hij de javascriptcode doorloopt wat hij terug krijgt, maar die javascript kan dus ook in de onComplete

JavaScript:
1
2
3
4
5
6
                this.send({
                     onComplete: function() {
                             log.removeClass('ajax-loading');
                             document.form1.dns_name.style.borderColor='#FF0000';
                     }
                });


neem aan dat het dan zo moet werken, aangezien je ook niets terug hoeft te krijgen en dus niet je divje hoeft te updaten.

[ Voor 49% gewijzigd door RuudBurger op 13-10-2007 12:22 ]


  • Cartman!
  • Registratie: April 2000
  • Niet online
Waarom heb je
code:
1
2
3
4
<script type="text/javascript">
<!--
 //-->
 </script>


er in staan? Dat is HTML, geen javascript. Dus dat IE daar een error op geeft vind ik meer dan logisch.

  • Woef
  • Registratie: Juni 2000
  • Niet online
De oplossing van Sillymidget kan niet aangezien de javascript output afhankelijk is van de $_POST.
Maar heb het inmiddels opgelost :).
Probleem zat in:
code:
1
2
3
4
<script type="text/javascript">
<!--
 //-->
</script>

Moest worden:
code:
1
2
<script type="text/javascript">
</script>


Ik deed het nog op de oude stijl |:( .
Pagina: 1