merianos Δημοσ. 12 Αυγούστου 2008 Δημοσ. 12 Αυγούστου 2008 Για σε όλους. Θα ήθελα λίγο την βοήθεια σας για ένα θέμα που προκύπτει από τον Internet Explorer ! ! ! Πάλι η Microsoft το έκαμε το θαύμα της. Προσπαθώ να φτιάξω μια φόρμα για να λαμβάνω παραγγελίες από το Internet για μια υπηρεσία που θέλω να παρέχω. Η φόρμα έχει δύο πακέτα τα οποία όμως μπορεί να παραμετροποιήσει πλήρως ο πελάτης την ώρα της παραγγελίας. (Να προσθέσει επιπλέον χαρακτηριστικά ή να αφαιρέσει). Η δυνατότητα αυτή του να προσθέσει ή να αφαιρέσει χαρακτηριστικά του δίνετε με Radio Buttons για κάθε κατηγορία. Για παράδειγμα : Τι καφέ θέλετε ? RadioButton Ελληνικό RadioButton Frape RadioButton Φίλτρου. Την ώρα που ο χρήστης κάνει την επιλογή του δίπλα φένετε ποια επιλογή έχει κάνει με μια λέξη του τύπου “Η επιλογή σας” και ταυτόχρονα με AJAX αλλάζει και η τιμή. Αν για παράδειγμα θέλει και γάλα τότε θα προσαρμοστεί η τιμή πριν αγοράσει τον καφέ του. Το πρόβλημα ποιο είναι τώρα ? ? ? Όλοι οι Browser όπως είναι οι ακόλουθοι Firefox, Opera, Safari, Flock δουλεύουν άψογα ! ! ! Κανένα πρόβλημα ως εδώ ! ! ! Ο Internet Explorer όμως ? ? ? Όταν κάνω Click σε ένα Radio Button τότε δεν πραγματοποιήστε καμία αλλαγή στη σελίδα αλλά με ένα δεύτερο Click σε οποιοδήποτε σημείο της σελίδας άσχετα με το Radio Button ή ακόμα και στο Radio Button τότε οι αλλαγές γίνονται. Να σημειωθεί πως χρησιμοποιώ JQuery, Prototype, YUI, EXT, Spry και άλλα και κανένα δεν μπορεί να λύσει αυτό το πρόβλημα οπότε δεν είναι αυτά καθεαυτά τα Framworks ! ! ! Παρακάτω έχω και τον κώδικα με JQuery: Αυτή είναι η συνάρτηση που κάνει όλους τους ελέγχους. function doTheWork() { var getstr = "?"; var packet = $("input[@name=package]:checked").val(); var width = $("input[@name=width]:checked").val(); var fontresize = $("input[@name=fontresize]:checked").val(); var speedy = $("input[@name=speedy]:checked").val(); getstr += '&package=' + packet; getstr += '&width=' + width; getstr += '&fontresize=' + fontresize; getstr += '&speedy=' + speedy; $.ajax( { type: "POST", url: "priceCalculator.php", data: getstr, success: function(msg) { $("div.Total").text("Total : " + msg + " \u20AC"); // \u20AC is the Euro Symbol } } ); } Και αυτή είναι η φόρμα μου. Να σημειωθεί πως την έχω κόψει αρκετά όπως και την JavaScript για να πάρετε μόνο το ζουμί. <form action="#" name="contactForm" id="contactForm" method="post" enctype="application/x-www-form-urlencoded"> <label> <input type="radio" name="package" value="Basic" checked="checked" id="basic" onchange="packInit(this.id);doTheWork();" />Soft user <span class="price">XXX€</span> </label> <label> <input type="radio" name="package" value="Pro" id="pro" onchange="packInit(this.id);doTheWork();" />Pro user <span class="price">ZZZ€</span> </label> <label> <input type="radio" name="width" value="fixed" checked="checked" onchange="doTheWork();changeValues('lbl1', 'lbl2');" />Σταθερό <span class="price" id="lbl1">Περιλαμβάνετε</span> </label> <label><input type="radio" name="width" value="flexible" onchange="doTheWork();changeValues('lbl1', 'lbl2');" />Ευέλικτο <span class="price" id="lbl2">+35€</span> </label> <label> <input type="radio" name="fontresize" value="no" checked="checked" onchange="doTheWork();changeValues('lbl20', 'lbl21');" />Όχι <span class="price" id="lbl20">Περιλαμβάνετε</span> </label> <label> <input type="radio" name="fontresize" value="yes" onchange="doTheWork();changeValues('lbl20', 'lbl21');" />Ναί <span class="price" id="lbl21">+36€</span> </label> <label><input type="radio" name="speedy" id="speedy1" value="no" checked="checked" onchange="doTheWork();changeValues('lbl33', 'lbl34');" />Όχι <span class="price" id="lbl33">Περιλαμβάνετε</span> </label> <label><input type="radio" name="speedy" id="speedy2" value="yes" onchange="doTheWork();changeValues('lbl33', 'lbl34');" />Ναί <span class="price" id="lbl34">+15€</span> </label> </form>
alex2005 Δημοσ. 13 Αυγούστου 2008 Δημοσ. 13 Αυγούστου 2008 Από ότι θυμάμαι ο ΙΕ έχει πρόβλημα με το onchange event. Δοκίμασε να το αντικαταστήσεις με onclick event! Σε εφαρμογή με Ajax που ανέτρεξα τώρα και έχω κάνει στο παρελθόν χρησιμοποιώ αυτό το event και δούλευε μία χαρά. Μην βιάζεσαι, θα πάρεις απάντηση Υ.Γ. Μακάρι αυτή να είναι η μόνη μαλακία που θα βρεις στον ΙΕ μια και παίζεις με AJAX. Εγώ μετάνιωσα την ώρα και την στιγμή που είπα να κάνω την εφαρμογή με AJAX λόγω των προβλημάτων που μου δημιουργούσε συνέχεια αυτός ο δαιμονισμένος browser!!!
merianos Δημοσ. 13 Αυγούστου 2008 Μέλος Δημοσ. 13 Αυγούστου 2008 Είσαι θεός ! ! ! Σήμερα θα ετοιμαζόμουν να γράψω όλο τον κώδικα ειδικά για τον Internet Explorer σε JavaScript για αρχή χωρίς τη χρήση κάποιου Framework και στη συνέχεια θα δοκίμαζα την VBScript γιατί το μυαλό μου πήγαινε στην γλώσσα Script και στα Framework. Δεν μπορούσα να φανταστώ ότι η Microsoft μαλ....ζετε τόσο πολύ σε τέτοια λεπτά ζητήματα. Καθώς φαίνεται, η Microsoft παράγει τον Internet Explorer καθαρά από αγγαρεία. Παιδιά καλό κουράγιο όσοι θα ασχοληθείτε με τον Internet Explorer ! ! ! ! είναι απαίσιος ! ! !
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.