Πρόβλημα με Firefox

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
RADICAL
Δημοσιεύσεις: 386
Εγγραφή: 14 Ιούλ 2004 01:07
Τοποθεσία: Athens
Επικοινωνία:

Πρόβλημα με Firefox

Δημοσίευση από RADICAL » 02 Φεβ 2005 12:32

Έχει κανείς καμιά ιδέα τι μπορεί να μην αρέσει στον Firefox και δεν κάνει submit αυτή την φόρμα?

Κώδικας: Επιλογή όλων

<div class="preview" onClick="document.forms&#91;<%=&#40;iCtr+1&#41;%>&#93;.submit&#40;&#41;">.....</div>
οπου iCtr+1 είναι ένα απλο counter για να δύνει ονόματα σε δυναμικά αναπαραγόμενες φόρμες.

Στον explorer δουλέυει μια χαρα.

Ryu
Δημοσιεύσεις: 74
Εγγραφή: 24 Σεπ 2004 16:32

Πρόβλημα με Firefox

Δημοσίευση από Ryu » 02 Φεβ 2005 13:33

Δεν ξέρω και πολλά αλλά κάτι μου λέει ότι φταίει το %. Μπορεί να είναι και η ιδέα μου, μην με πάρεις τις μετρητοίς.... Για βγάλτο να δεις πως πάει...

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Πρόβλημα με Firefox

Δημοσίευση από Cha0s » 02 Φεβ 2005 13:56

Το <% ..... %> είναι ASP και στην περίπτωση αυτή τυπώνει αριθμούς δυναμικά...

Δεν νομίζω ότι είναι εκεί το πρόβλημα..

Δυστυχώς από Javascript δεν σκαμπάζω και πολλά :(

Άβαταρ μέλους
RADICAL
Δημοσιεύσεις: 386
Εγγραφή: 14 Ιούλ 2004 01:07
Τοποθεσία: Athens
Επικοινωνία:

Πρόβλημα με Firefox

Δημοσίευση από RADICAL » 02 Φεβ 2005 14:21

Έχει δίκιο ο ChaOs. Είναι συντακτικό τις Java αυτό και δεν αλλάζει. Πάντως τελικά την κάνει submit και στον firefox οπότε μάλλον το πρόβλημα είναι στο software μου. Αυτό που με προβληματίζει πάντως είναι πως το software δουλεύει μια χαρά από explorer αλλά από τον firefox κάτι δεν πάει καλά και δεν θα έπρεπε. Anyway.
Ευχαριστώ για την βοήθεια.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Πρόβλημα με Firefox

Δημοσίευση από skeftomilos » 14 Φεβ 2005 07:44

Τι επιστρέφει το (iCtr+1)? Νομίζω ότι εδώ είναι το λάθος. Εάν έχεις μία φόρμα με <name="Test" id="Test">, μπορείς να αναφερθείς σε αυτήν με οποιονδήποτε από τους παρακάτω δύο τρόπους:

Κώδικας: Επιλογή όλων

document.forms&#91;"Test"&#93;.submit&#40;&#41;
document.Test.submit&#40;&#41;
Ο παρακάτω κώδικας υποχρεώνει την script engine του Firefox να ψάξει για μία μεταβλητή με το όνομα Test που φυσικά δεν υπάρχει:

Κώδικας: Επιλογή όλων

document.forms&#91;Test&#93;.submit&#40;&#41;
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Πρόβλημα με Firefox

Δημοσίευση από Cha0s » 14 Φεβ 2005 10:15

Άυξοντες αριθμούς επιστρέφει το iCtr+1.

Οπότε δυναμικά αλλάζει το όνομα τις φόρμας στην οποία αναφέρεται.

Δεν νομίζω ότι είναι εκεί το πρόβλημα αφού η ASP το επιστρέφει σαν

onClick="document.forms[1].submit()"

Όπου 1 ο δυναμικός αριθμός που αλλάζει κάθε φορά.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Πρόβλημα με Firefox

Δημοσίευση από skeftomilos » 14 Φεβ 2005 15:17

Τα arrays της JavaScript αρχίζουν από το 0. Η έκφραση document.forms[1] αναφέρεται στη δεύτερη φόρμα της σελίδας. Αν δεν υπάρχει δεύτερη φόρμα τότε η έκφραση θα επιστρέψει την ειδική τιμή undefined, η οποία φυσικά δεν διαθέτει μέθοδο submit(). Σε αυτή την περίπτωση το σφάλμα που αναγράφεται στη JavaScript Console του Firefox είναι το εξής:

Error: document.forms[1] has no properties
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Πρόβλημα με Firefox

Δημοσίευση από ThyClub » 14 Φεβ 2005 15:31

Άρα ο φίλος μας θα χρειαστεί να δώσει μια αρνητική τιμή -1 στην μεταβλητή (?) iCtrl και με το που τρέχει το σκρίπτ να γίνεται 0, 1, 2....

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Πρόβλημα με Firefox

Δημοσίευση από skeftomilos » 14 Φεβ 2005 15:36

Κάτι τέτοιο μάλλον. Ο Firefox διαθέτει και το παρακάτω εργαλείο που μπορεί να βοηθήσει στο debugging:

Tools - Page Info - Forms(Tab)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Tanaka
Δημοσιεύσεις: 174
Εγγραφή: 27 Απρ 2004 21:40
Τοποθεσία: Κορωπί

Πρόβλημα με Firefox

Δημοσίευση από Tanaka » 14 Φεβ 2005 15:52

Για javascript debugging (και γενικότερα για web develpoment) υπάρχει ένα πολύ ωραίο extension για firefox (http://www.chrispederick.com/work/firefox/webdeveloper/)

Άβαταρ μέλους
RADICAL
Δημοσιεύσεις: 386
Εγγραφή: 14 Ιούλ 2004 01:07
Τοποθεσία: Athens
Επικοινωνία:

Πρόβλημα με Firefox

Δημοσίευση από RADICAL » 14 Φεβ 2005 23:47

Καταρχάς ευχαριστώ για το χρόνο σας.
Η εφαρμογή είναι γραμμένη σε Java και το iCtr δουλεύει κανονικά όπως λέει ο ThyClub.
Απλά δίνει δυναμικά ονόματα στις φόρμες που δημιουργούνται αυτόματα γιατί πρέπει όλες να έχουν ξεχωριστό όνομα.
Με αυτό δεν φαίνετε να υπάρχει πρόβλημα λειτουργεί σωστά από την αρχή.
Πρόκειται για μια λίστα προϊόντων που χρησιμεύει για να συνδυαστούν προϊόντα με πακέτα. (www.eurika.gr αν θέλετε να ρίξετε μια ματιά)
και το πρόβλημα που υπάρχει είναι πως ενώ από τον explorer μπορείς να επιλέξεις το ίδιο τεμάχιο μία η και παραπάνω φορές ο firefox
δεν σε αφήνει από την δεύτερη φορά και μετά.

Ο Firefox Πάντως σε γενικές γραμμές είναι πιο απαιτητικός στην Javascript.
Π.χ. ενώ στον explorer για μια σελίδα με παραπάνω από μια φόρμες δίνοντας :

Κώδικας: Επιλογή όλων

onClick="submit&#40;&#41;" 
λειτουργεί χωρίς πρόβλημα (εννοείτε χωρίς το submit να είναι δηλωμένη συνάρτηση κάπου)
στον Firefox πρέπει οπωσδήποτε να πεις

Κώδικας: Επιλογή όλων

onClick="document.forms&#91;0&#93;.submit&#40;&#41;"
το οποίο είναι και το σωστότερο βέβαια.
Εικόνα

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Πρόβλημα με Firefox

Δημοσίευση από skeftomilos » 15 Φεβ 2005 08:15

Σε ποιο HTML-Element συνδέεις το χειριστή συμβάντος onClick? Μήπως σε κάποιο button μέσα στη φόρμα? Αν ναι, τότε υπάρχει απλούστερη λύση:

Κώδικας: Επιλογή όλων

<form>
  <input type="button" value="Submit" onClick="this.form.submit&#40;&#41;">
</form>
Ιδιότητα form διαθέτουν μόνο τα στοιχεία φόρμας <input> όλως των ειδών, καθώς και τα <select> και <textarea>. Αν πρόκειται για κατι άλλο όπως <a> δε μπορείς να χρησιμοποιήσεις αυτή τη μέθοδο.

:question: Απορία 1: Η σελίδα σου δίνει τη δυνατότητα στους χρήστες που δεν έχουν ενεργοποιημένη τη JavaScript να κάνουν Submit?
:question: Απορία 2: Γιατί δε χρησιμοποιείς <input type="submit">?
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Πρόβλημα με Firefox

Δημοσίευση από skeftomilos » 15 Φεβ 2005 10:17

Ωραίο το site που φτιάχνεις Radical! Αν το έφτιαξες μόνος σου σου αξίζουν συγχαρητήρια! :victory:

Ο κώδικας της σελίδας αγορών έχει πολλές όμοιες φόρμες με την εξής μορφή:

Κώδικας: Επιλογή όλων

<form name="3" id="3">
  <a onClick="document.forms&#91;3&#93;.submit&#40;&#41;">Επιλέξτε</a>
</form>
Το πρόβλημα του κώδικα δεν είναι και τόσο κρυφό όταν εμφανίζεται σε τόσο απλή μορφή, αλλά φαντάζομαι ότι μέσα σε ένα ASP ή PHP script χιλίων γραμμών θα φαίνεται πολύ πιο ζόρικο! Η script engine του browser δεν κοιτάζει καθόλου το όνομα που έχεις δώσει στη φόρμα γιατί είναι άλλο να είσαι η τέταρτη φόρμα της σελίδας και άλλο το όνομά σου να είναι "3"! Επειδή κατά σύμπτωση έχεις μία επιπλέον φόρμα με κανονικό όνομα πριν από τις πολλές, συμβαίνει να δουλεύει στον IE. Όσο για το Firefox, μάλλον τοποθετεί τις φόρμες με διαφορετική σειρά μέσα στη συλλογή document.forms. Δεν είναι υποχρεωμένος να τις έχει με τη σειρά που εμφανίζονται, μπορεί να τις μετρά ανάποδα! Εσύ πάντως φρόντισε να αναφέρεσαι στις φόρμες με το όνομά τους και όχι με την αύξουσα αρίθμησή τους. Ο κώδικάς σου πρέπει να αποκτήσει μία μορφή σαν την παρακάτω:

Κώδικας: Επιλογή όλων

<form name="f3" id="f3">
  <a onClick="document.forms&#91;"f3"&#93;.submit&#40;&#41;">Επιλέξτε</a>
</form>
ή

Κώδικας: Επιλογή όλων

<form name="f3" id="f3">
  <a onClick="document.f3.submit&#40;&#41;">Επιλέξτε</a>
</form>
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
RADICAL
Δημοσιεύσεις: 386
Εγγραφή: 14 Ιούλ 2004 01:07
Τοποθεσία: Athens
Επικοινωνία:

Πρόβλημα με Firefox

Δημοσίευση από RADICAL » 16 Φεβ 2005 02:02

Καλησπέρα και πάλι.
Σε ποιο HTML-Element συνδέεις το χειριστή συμβάντος onClick?
Για να μην «φορτώσω» την σελίδα με πολλά κουμπιά βάζω το onClick event σε κάποιο κείμενο η φωτογραφία μέσα στο <a> η στο <div>.
Πράγματι σε κάποια δεν υπάρχει αυτή η δυνατότητα όπως στο <span> αν δεν κάνω λάθος , αλλά από ότι φαίνεται σε αυτά τα δύο λειτουργεί κανονικά
Απορία 1: Η σελίδα σου δίνει τη δυνατότητα στους χρήστες που δεν έχουν ενεργοποιημένη τη JavaScript να κάνουν Submit?
Από ότι φαίνεται όχι. Ωστόσο το πιο πιθανόν είναι να μην καταφέρουν να φτάσουν ποτέ στο καλάθι αγορών γιατί αρκετά σημαντικά πράγματα στην σελίδα γίνονται με JavaScript :roll:
Αυτό είναι να πρόβλημα.....
Απορία 2: Γιατί δε χρησιμοποιείς <input type="submit">?
Είπα να μην βάλω πολλά κουμπιά για αισθητικούς λόγους.

Σε ευχαριστώ πολύ για τα καλά σου λόγια. Ναι μόνος μου το φτιάχνω και έχει λίγη δουλίτσα ακόμα

Έχεις δίκιο σχετικά με τις φόρμες και τα ονόματα τους επειδή όμως η φόρμες δεν υπάρχουν στην σελίδα από την αρχή
αλλά δημιουργούνται δυναμικά σύμφωνα με τα τεμάχια
που υπάρχουν στην λίστα (Οι Επιλογές μου) δεν μπορώ να ξέρω και τα ονόματα τους τα οποία δημιουργούνται και αυτά δυναμικά.
Ίσως αυτό που θα δουλέψει να είναι το this.form.submit() το οποίο θα βρίσκεται μέσα σε κάθε φόρμα και θα κάνει submit μόνο αυτή.

Ωστόσο μέχρι τώρα γίνεται αυτό που μου λες
<form name="f3" id="f3">
<a onClick="document.forms["f3"].submit()">Επιλέξτε</a>
</form>
απλά επειδή το όνομα το παίρνει η φόρμα δυναμικά ο κώδικας μου είναι έτσι:

Κώδικας: Επιλογή όλων

<form name="<%=&#40;iCtr+1&#41;%>" id="<%=&#40;iCtr+1&#41;%>"> 
  < onClick="document.forms&#91;<%=&#40;iCtr+1&#41;%>&#93;.submit&#40;&#41;">Επιλέξτε</a> 
</form>
Υ.Γ. Για να γίνω πιο σαφής το πρόβλημα υπάρχει μόνο από τον
firefox στο καλάθι αγορών. Όταν ο χρήστης π.χ. έχει δύο παραγγελίες Χ ας πούμε και θέλει να επιλέξει και για αυτές τις δύο το ίδιο template από την
λίστα με τις επιλογές του από τα δεξιά ο firefox δεν το αφήνει να το βάλει δύο φορές. Το προβληματικό submit λοιπόν είναι κάτω από το εικονίδιο "Βελάκι" στην επιλογές μου. Αυτό που περνάει δηλαδή το template δίπλα μέσα στην παραγγελία.
(Τώρα που το περιγράφω δεν μου φαίνεται καθόλου user friendly o μηχανισμός αλλ τεσπα.:hammer: )
Όλα τα υπόλοιπα φαίνονται να λειτουργούν σωστά.

Και πάλι ευχαριστώ για τη βοήθεια..
Εικόνα

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Πρόβλημα με Firefox

Δημοσίευση από ThyClub » 16 Φεβ 2005 08:47

Για να μην «φορτώσω» την σελίδα με πολλά κουμπιά βάζω το onClick event σε κάποιο κείμενο η φωτογραφία μέσα στο <a> η στο <div>.
Να σου θυμίσω οτι στην HTML υπάρχει και το :

Κώδικας: Επιλογή όλων

<input type="image">
???

:wink: :wink: :wink:

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες