επιλέγοντας radio button

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

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

Απάντηση
Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

επιλέγοντας radio button

Δημοσίευση από Serghio » 21 Ιουν 2013 20:58

ας πούμε ότι έχουμε 5 radio buttons με id το καθενα απο buztype0 εως buztype5.
Με τον παρακάτω κώδικα και με το κλικ ενός button(ο κώδικας για το κλικ του button δεν απεικονίζεται-δεν χρειάζεται νομίζω) επιλέγεται ένα συγκεκριμένο radio button(το buztype2 συγκεκριμένα):

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

document.getElementById("buztype2").checked=true
Η λογική είναι ότι θα υπάρχει ένα radio button επιλεγμένο από πρίν (by default) και όταν πάει ο χρήστης να επιλέξει άλλο radio button το κλικάρισμα του κουμπιού που αναφέρω παραπάνω θα επαναφέρει αρχικό selection-θα ΑΚΥΡΩΝΕΙ δηλαδή την επιλογή του χρήστη.
Και που είναι χρήσιμο αυτό;

Πάει να κάνει edit το προφίλ, πραγματοποιεί μια αλλαγή σε radio button και αποφασίζει να το ακυρώσει(κάνει κλικ δηλαδή σε cancel button).

Και όταν πάει να ξανα-ανοίξει την φόρμα έχει διατηρηθεί η αρχική επιλογή-προσπαθώ να φτιάξω κώδικα για αυτήν την περίπτωση λοιπόν.

Το θέμα είναι πως θα γίνεται η επαναφορά για το οποιοδήποτε radio button(αφού κάνουμε στο κλικ στο cancel button)...σε αντίθεση με τον παραπάνω κώδικα που λειτουργέι πάντα για ένα από αυτά...κάποιο for loop ίσως;

Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

επιλέγοντας radio button

Δημοσίευση από Serghio » 27 Ιουν 2013 19:55

κανείς;
Μήπως δεν έγινε κατανοητό το πρόβλημα που αντιμετωπίζω;

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

επιλέγοντας radio button

Δημοσίευση από burnmind » 28 Ιουν 2013 01:32

Χρειάζεται ο κώδικας για να καταλάβει κάποιος τι έχεις φτιάξει και ποιο είναι το πρόβλημα. :)

Πχ, τί γίνεται όταν κάνει cancel ο χρήστης και γιατί κρατάει τις επιλογές ενώ δεν τις έχει αποθηκεύσει; Μήπως αποθηκεύονται αυτόματα, ή απλά κρύβεις και εμφανίζεις την φόρμα με JS χωρίς να την δημιουργήσεις από την αρχή, άρα κρατάει τα δεδομένα; Πιάνεις τη λογική. ;)

Anyway, με βάση τα όσα καταλαβαίνω, θες κάτι τόσο απλό όσο το εξής: http://jsfiddle.net/QyZNt/

Μπορείς για παράδειγμα να δηλώσεις με κάποιον τρόπο τις default επιλογές (πχ JS variables ή κάποιο array), και όταν ο χρήστης click-άρει κάποιο cancel button, να τις επαναφέρεις.

Αν χρειάζεσαι κάτι άλλο, ετοίμασε ένα demo κάπου για να σου απαντήσει κάποιος με βάση τον κώδικά σου.

Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

επιλέγοντας radio button

Δημοσίευση από Serghio » 28 Ιουν 2013 12:07

ο κώδικας που μου έδωσες κάνει ακριβώς αυτό που θέλω...θα χρειαστεί όμως κάποια αλλαγή καθώς δεν είναι στανταρ το τι θα είναι επιλεγμένο. Αυτό είναι κάτι που αλλάζει...

π.χ με το $("input:checked").val() μπορούμε να πάρουμε το value το οποίο είναι
επιλεγμένο ανα πάσα στιγμή...το id όμως;

Πως θα το κάνω;

Η HTML είναι αυτή:

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

   <div class="selections selections2">
                      
                       <label class="label" for="buztype">Test</label><br>
                     <input type="radio" class="formBuzType" name="buztype"  value="1" checked > <label>test1</label><br>
                     <input type="radio"  class="formBuzType" name="buztype"    value="2"   ><label>test2</label> <br>
                     <input type="radio" class="formBuzType" name="buztype"  value="3"  > <label>test3</label> <br>
                     <input type="radio" class="formBuzType"  name="buztype" value="4"   > <label>test4</label>  <br>
                     <input type="radio" class="formBuzType" name="buztype" value="5"      > <label>test5</label> <br>
                       </div>

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

επιλέγοντας radio button

Δημοσίευση από alou » 28 Ιουν 2013 13:09

Αν υπάρχει στο input κάποιο id, θα το πάρεις με
$("input:checked").attr('id')

Αν το id δεν αφορά το input και απλά θες να μεταφέρεις την τιμή ενός id που θες να επεξεργαστείς, θα μπορούσαν τα input να είναι κάπως έτσι:

<input data-itemid"enaID" type="radio" class="formBuzType" name="buztype" value="1" checked >

και να πάρεις την τιμή αυτή έτσι:
$("input:checked").data('itemID')

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

επιλέγοντας radio button

Δημοσίευση από burnmind » 28 Ιουν 2013 13:28

Πάνω στο παράδειγμα του alou, να προσθέσω απλά πως για να πάρεις το επιλεγμένο αντικείμενο της συγκεκριμένης ομάδας από radio buttons (μπορεί να υπάρχουν περισσότερες), ένας από τους τρόπους είναι ο εξής:

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

$&#40;"input&#91;name=buztype&#93;&#58;checked"&#41;.attr&#40;'id'&#41; 

Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

επιλέγοντας radio button

Δημοσίευση από Serghio » 01 Ιούλ 2013 16:26

burnmind έγραψε:Πάνω στο παράδειγμα του alou, να προσθέσω απλά πως για να πάρεις το επιλεγμένο αντικείμενο της συγκεκριμένης ομάδας από radio buttons (μπορεί να υπάρχουν περισσότερες), ένας από τους τρόπους είναι ο εξής:

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

$&#40;"input&#91;name=buztype&#93;&#58;checked"&#41;.attr&#40;'id'&#41; 
To παραπάνω θα τα έχω στα υπόψιν για το μέλλον.

Τώρα όσον αφορά αυτά που έθεσε ο burnmind.
Η λογική της φόρμας είναι η εξής:
Πρώτα αυτή είναι κλειστή-οπότε και ο χρήστης επιλέγει να κάνει edit(κάνοντας κλικ το αντίστοιχο εικονίδιο). τότε εμφανίζονται τα radio buttons με τσεκαρισμένη την επιλογή που έχει κάνει από την προηγούμενη φορά ο χρήστης(και η οποία τραβιέται από την βάση).

Το cancel λειτουργεί ως εξής(και εδώ θα μου πείτε αν "μπάζει" από κάπου η λογική):
Ας πούμε ότι ο χρήστης τσεκάρει άλλο radio button και μετά πατάει cancel αφού τελικά αποφασίζει να μην προχωρήσει σε αλλαγές-και κλείνει την φόρμα.

Ο σκοπός είναι όταν ξανανοίξει την φόρμα αυτή να έχει τσεκαρισμένο το ΑΡΧΙΚΟ radio button εφόσον επέλεξε να κάνει cancel την μετέπειτα επιλογή του.

Πως το ακούτε;

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

επιλέγοντας radio button

Δημοσίευση από alou » 02 Ιούλ 2013 16:41

Δεν το ακούω παράλογο αλλά ούτε και απαραίτητο, η λογική σε τέτοια θέματα διαφέρει ανάλογα με το τι περιμένει ο καθένας από μια λειτουργία και εμείς δεν είμαστε αντικειμενικοί.

Πάντως αν θες να το κάνεις έτσι, φαντάζομαι καταλαβαίνεις ότι θα πρέπει να κρατήσεις σε μια μεταβλητή την αρχική τιμή σε οτιδήποτε πιθανώς χρειαστεί να επαναφέρεις, πριν αλλάξει.

Ίσως το πιο σωστό από όλα θα ήταν να δώσεις τη δυνατότητα στον χρήστη να επαναφέρει τις αρχικές τιμές με ένα αντίστοιχο button, πχ "Ακύρωση" του edit και "Ακύρωση και επαναφορά επιλογών", 2 κουμπιά.

Έτσι δεν χάνεις.

Απάντηση

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

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

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