multiple select function

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

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

Απάντηση
Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

multiple select function

Δημοσίευση από vassilism » 03 Οκτ 2017 16:58

Καλησπέρα,
Χρειάζομαι μια βοήθεια σε μια jquery function.
Έχω μια multiple select στην οποία μπορώ να επιλέξω πολλαπλές περιοχές.
Από κάτω έχω κάποια links που όταν πατάω κάποιο link μου βάζει στη select την περιοχή που διάλεξα.
Το πρόβλημα είναι πως αν βάλω μια περιοχή από το link και μετά την βγάλω από τη select, δεν μπορεί να μπει ξανά η περιοχή από το link.
Μπορεί κάποιος να βοηθήσει?

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

<select multiple="multiple" id="multi_location">
<option value="1">Αθήνα</option>
<option value="2">Πειραιάς</option>
<option value="3">Θεσσαλονίκη</option>
<option value="4">Ναύπλιο</option>
<option value="5">Κόρινθος</option>
</select>
<br />


<a href="#" onClick="add_to_select(event, '1');">Αθήνα</a><br />
<a href="#" onClick="add_to_select(event, '2');">Πειραιάς</a><br />
<a href="#" onClick="add_to_select(event, '3');">Θεσσαλονίκη</a><br />
<a href="#" onClick="add_to_select(event, '4');">Ναύπλιο</a><br />
<a href="#" onClick="add_to_select(event, '5');">Κόρινθος</a><br />
<a href="#" onClick="add_to_select(event, '6');">Πάτρα</a><br />

<script>
function add_to_select(e, location_id){
e.preventDefault();

var location_exists = false;
$("#multi_location option").each(function(){
 if ($(this).attr("value") == location_id) {
     location_exists = true;
     $(this).attr("selected",true);
     $(this).trigger('change');	
 } 
});

if(location_exists == false){
alert("Nothing in Select");
}

}
</script>

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Re: multiple select function

Δημοσίευση από fafos » 04 Οκτ 2017 13:00

ela re patrida! ematha egines mpampas? wellcome to club :D

me kathe click sta links h jquery pernaei thn energeia sthn DOM gia na thn thymatai... patontas sto select mia option pou yparxei hdh sthn DOM den thn afhnei na ginei selected giati thn theorei os selected...

opote prepei na katharisoume thn DOM gia na mporesoume na epilexoume ek neou apo to select...

enas aplos tropos einai me to on change sto select na gyrisoume to selected se false:

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

function add_to_select(e, location_id) {
	e.preventDefault();

	var location_exists = false;
	$("#multi_location option").each(function () {

		if ($(this).attr("value") == location_id) {
			location_exists = true;
			$(this).attr("selected", true);
			$(this).trigger('change');
		}	
	});
	$('#multi_location option').change(function () {
		if($(this).is(':selected')){
			$(this).location_exists == false;//"adeiase" thn DOM
		} else {
			$(this).prop('selected', true);
		}
	});

	if (location_exists == false) {
		alert("Nothing in Select");
	}
}
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Re: multiple select function

Δημοσίευση από vassilism » 04 Οκτ 2017 15:17

Γεια σου ρε πατρίδα!
Καταρχήν έγινα μπαμπάς. Ακόμα είμαστε στα δύσκολα αλλά σιγά σιγά γίνεται όλο και καλύτερα.
Δεύτερον σευχαριστώ πολύ για τη βοήθεια και για την εξήγηση.
Κάτι τέτοιο προσπαθούσα αλλά δεν μου έβγαινε με τίποτα.

Η function που έγραψες δουλεύει τέλεια. Χρωστάω κέρασμα.

Να σου πω την αλήθεια δεν κατάλαβα πως έκανες το selected false.
Τη location_exists την είχα μόνο για να ελέγχει αν μια περιοχή υπάρχει στη select.

Απάντηση

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

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

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