Bonjour,
J'essaye actuellement de faire comme sur ce script: http://fiddle.jshell.net/Luybq3sx/?u...paign=Luybq3sx
Mais je n'y arrive pas, la limite reste inopérante... Je pense que j'ai oublié quelque chose mais je ne parviens pas à trouver la solution.
D'avance merci pour vos lumières, je précise que je ne suis pas du tout un as du javascript/jquery.
Voici mon code (qui affiche la liste, mais sans la limite du nombre de choix):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 <html> <head> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script> <link href="css/multi-select.css" media="screen" rel="stylesheet" type="text/css"> <script src="js/jquery.multi-select.js" type="text/javascript"></script> <script type='text/javascript'>//<![CDATA[ $(window).load(function(){ var MAX_SELECTABLE_OPTIONS = 3, selectedCount = 0 $('#myselect').multiSelect({ afterSelect: afterSelect, afterDeselect: afterDeselect }) function afterSelect (values) { if (values) { selectedCount += values.length } updateMultiSelect(selectedCount) } function afterDeselect (values) { if (values) { selectedCount -= values.length } updateMultiSelect(selectedCount) } function updateMultiSelect(selectedCount) { var $myselect = $('#myselect'), selectedValues = $myselect.val() if (selectedCount >= MAX_SELECTABLE_OPTIONS) { $myselect.children().each(function () { if (!_.contains(selectedValues, this.value)) { log('disabling', this.value) $(this).attr('disabled', 'disabled') } }) } else { $myselect.children().removeAttr('disabled') } $myselect.multiSelect('refresh') log('[updateMultiSelect] selectedCount', selectedCount) } // end updateMultiSelect function log () { var $log = $('#log'), args = Array.prototype.slice.call(arguments) $log.text($log.text() + args.join(' ') + "\n") } });//]]> </script> </head> <body> <select multiple="multiple" id="myselect" name="myselect[]"> <option value='elem_1'>elem 1</option> <option value='elem_2'>elem 2</option> <option value='elem_3'>elem 3</option> <option value='elem_4'>elem 4</option> <option value='elem_100'>elem 100</option> </select> <textarea id="log"></textarea> <script> $('#myselect').multiSelect({}); </script> </body> </html>
Partager