de-vraag
  • Ερωτήσεις
  • Ετικέτες
  • Χρήστες
Ειδοποιήσεις
Ανταμοιβές
Εγγραφή
Μόλις εγγραφείτε, θα ενημερωθείτε για τις απαντήσεις και τα σχόλια στις ερωτήσεις σας.
Συνδεθείτε
Αν έχετε ήδη λογαριασμό, συνδεθείτε για να ελέγξετε τις νέες ειδοποιήσεις.
Θα υπάρξουν ανταμοιβές για πρόσθετες ερωτήσεις, απαντήσεις και σχόλια.
Περισσότερα
Πηγή
Επεξεργασία
Jay Corbett
Jay Corbett
Ερώτηση

Πώς μπορείτε να αφαιρέσετε όλες τις επιλογές ενός πλαισίου επιλογής και στη συνέχεια να προσθέσετε μια επιλογή και να την επιλέξετε με την jQuery;

Χρησιμοποιώντας τον πυρήνα της jQuery, πώς μπορείτε να αφαιρέσετε όλες τις επιλογές ενός πλαισίου επιλογής, στη συνέχεια να προσθέσετε μια επιλογή και να την επιλέξετε;

Το δικό μου πλαίσιο επιλογής είναι το ακόλουθο.

<Select id="mySelect" size="9"> </Select>

Επεξεργασία: Ο παρακάτω κώδικας ήταν χρήσιμος με την αλυσιδωτή σύνδεση. Ωστόσο, (στον Internet Explorer) το .val('whatever') δεν επέλεξε την επιλογή που προστέθηκε. (Χρησιμοποίησα την ίδια 'τιμή' τόσο στο .append όσο και στο .val).

$('#mySelect').find('option').remove().end()
.append('<option value="whatever">text</option>').val('whatever');

EDIT: Προσπαθώντας να το κάνω να μιμηθεί αυτόν τον κώδικα, χρησιμοποιώ τον ακόλουθο κώδικα κάθε φορά που η σελίδα/φόρμα επαναφέρεται. Αυτό το πλαίσιο επιλογής συμπληρώνεται από ένα σύνολο κουμπιών επιλογής. Η .focus() ήταν πιο κοντά, αλλά η επιλογή δεν εμφανιζόταν επιλεγμένη όπως συμβαίνει με την .selected= "true". Τίποτα δεν είναι λάθος με τον υπάρχοντα κώδικά μου - απλά προσπαθώ να μάθω το jQuery.

var mySelect = document.getElementById('mySelect');
mySelect.options.length = 0;
mySelect.options[0] = new Option ("Foo (only choice)", "Foo");
mySelect.options[0].selected="true";

EDIT: η επιλεγμένη απάντηση ήταν κοντά σε αυτό που χρειαζόμουν. Αυτό λειτούργησε για μένα:

$('#mySelect').children().remove().end()
.append('<option selected value="whatever">text</option>') ;

Αλλά και οι δύο απαντήσεις με οδήγησαν στην τελική μου λύση...

1020 2008-09-06T20:53:54+00:00 3
Reinstate Monica
Reinstate Monica
Επεξεργασμένη ερώτηση Κάνε Σεπτέμβριος 2019 в 5:34
Προγραμματισμός
javascript
jquery
html-select
option
Αυτή η ερώτηση έχει 1 απάντηση στα αγγλικά, για να τις διαβάσετε συνδεθείτε στο λογαριασμό σας.
Λύση / Απάντηση
 Matt
Matt
Κάνε Σεπτέμβριος 2008 в 9:01
2008-09-06T21:01:36+00:00
Περισσότερα
Πηγή
Επεξεργασία
#8442523
$('#mySelect')
    .find('option')
    .remove()
    .end()
    .append('<option value="whatever">text</option>')
    .val('whatever')
;
 nickf
nickf
Επεξεργασμένη απάντηση Κάνε Οκτώβριος 2008 в 2:25
1640
0
Bobby Jack
Bobby Jack
Κάνε Σεπτέμβριος 2008 в 6:51
2008-09-08T18:51:12+00:00
Περισσότερα
Πηγή
Επεξεργασία
#8442524

Δεν είμαι σίγουρος τι ακριβώς εννοείτε με το "προσθέστε ένα και επιλέξτε το", δεδομένου ότι θα επιλεγεί από προεπιλογή ούτως ή άλλως. Αλλά, αν προσθέτατε περισσότερα από ένα, θα είχε περισσότερο νόημα. Τι θα λέγατε για κάτι τέτοιο:

$('select').children().remove();
$('select').append('<option id="foo">foo</option>');
$('#foo').focus();

Απάντηση στο "EDIT": Μπορείτε να διευκρινίσετε τι εννοείτε με το "Αυτό το πλαίσιο επιλογής συμπληρώνεται από ένα σύνολο κουμπιών επιλογής"; Ένα στοιχείο <select> δεν μπορεί (νόμιμα) να περιέχει στοιχεία <input type="radio">.

Heemanshu Bhalla
Heemanshu Bhalla
Επεξεργασμένη απάντηση Κάνε Ιανουάριος 2019 в 10:33
30
0
Jay Corbett
Jay Corbett
Κάνε Σεπτέμβριος 2008 в 10:04
2008-09-09T22:04:52+00:00
Περισσότερα
Πηγή
Επεξεργασία
#8442525

Χάρη στις απαντήσεις που έλαβα, μπόρεσα να δημιουργήσω κάτι σαν το παρακάτω, το οποίο ταιριάζει στις ανάγκες μου. Η ερώτησή μου ήταν κάπως διφορούμενη. Ευχαριστώ για τη συνέχεια. Το τελικό μου πρόβλημα λύθηκε με την προσθήκη του "selected" στην επιλογή που ήθελα να είναι επιλεγμένη.