Skip to content

Commit 6148343

Browse files
committed
Fix bug vuematerial#529. Don't allow disabled options to be selectable.
1 parent 571635c commit 6148343

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

docs/src/pages/components/Select.vue

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@
174174
<md-option value="arial">Arial</md-option>
175175
<md-option value="calibri">Calibri</md-option>
176176
<md-option value="cambria">Cambria</md-option>
177-
<md-option value="comic_sans">Comic Sans</md-option>
177+
<md-option value="comic_sans" :disabled="true">Comic Sans</md-option>
178178
<md-option value="consolas">Consolas</md-option>
179179
<md-option value="courier">Courier</md-option>
180180
<md-option value="droid_sans">Droid Sans</md-option>
@@ -185,7 +185,7 @@
185185
<md-option value="segoe_ui">Segoe UI</md-option>
186186
<md-option value="times_new_roman">Times New Roman</md-option>
187187
<md-option value="ubuntu">Ubuntu</md-option>
188-
<md-option value="verdana">Verdana</md-option>
188+
<md-option value="verdana" :disabled="isDisabled">Verdana</md-option>
189189
</md-select>
190190
</md-input-container>
191191

@@ -244,7 +244,7 @@
244244
&lt;md-option value=&quot;arial&quot;&gt;Arial&lt;/md-option&gt;
245245
&lt;md-option value=&quot;calibri&quot;&gt;Calibri&lt;/md-option&gt;
246246
&lt;md-option value=&quot;cambria&quot;&gt;Cambria&lt;/md-option&gt;
247-
&lt;md-option value=&quot;comic_sans&quot;&gt;Comic Sans&lt;/md-option&gt;
247+
&lt;md-option value=&quot;comic_sans&quot; :disabled=&quot;true&quot;&gt;Comic Sans&lt;/md-option&gt;
248248
&lt;md-option value=&quot;consolas&quot;&gt;Consolas&lt;/md-option&gt;
249249
&lt;md-option value=&quot;courier&quot;&gt;Courier&lt;/md-option&gt;
250250
&lt;md-option value=&quot;droid_sans&quot;&gt;Droid Sans&lt;/md-option&gt;
@@ -255,7 +255,7 @@
255255
&lt;md-option value=&quot;segoe_ui&quot;&gt;Segoe UI&lt;/md-option&gt;
256256
&lt;md-option value=&quot;times_new_roman&quot;&gt;Times New Roman&lt;/md-option&gt;
257257
&lt;md-option value=&quot;ubuntu&quot;&gt;Ubuntu&lt;/md-option&gt;
258-
&lt;md-option value=&quot;verdana&quot;&gt;Verdana&lt;/md-option&gt;
258+
&lt;md-option value=&quot;verdana&quot; :disabled=&quot;isDisabled&quot;&gt;Verdana&lt;/md-option&gt;
259259
&lt;/md-select&gt;
260260
&lt;/md-input-container&gt;
261261

@@ -289,6 +289,11 @@
289289
country: '',
290290
font: ''
291291
}),
292+
computed: {
293+
isDisabled() {
294+
return true;
295+
}
296+
},
292297
methods: {
293298
setPulpFiction() {
294299
this.movie = 'pulp_fiction';
@@ -405,6 +410,11 @@
405410
'michael_scott'
406411
]
407412
}),
413+
computed: {
414+
isDisabled() {
415+
return true;
416+
}
417+
},
408418
methods: {
409419
setPulpFiction() {
410420
this.movie = 'pulp_fiction';

src/components/mdSelect/mdOption.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@
6262
}
6363
},
6464
selectOption($event) {
65+
if (this.disabled) {
66+
return;
67+
}
6568
this.setParentOption();
6669
this.$emit('selected', $event);
6770
}

src/components/mdSelect/mdSelect.scss

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
$select-height: 32px;
44

5+
@mixin disable-item {
6+
pointer-events: none;
7+
user-select: none;
8+
user-drag: none;
9+
}
10+
511
.md-select {
612
width: 100%;
713
min-width: 128px;
@@ -43,9 +49,7 @@ $select-height: 32px;
4349
}
4450

4551
&.md-disabled {
46-
pointer-events: none;
47-
user-select: none;
48-
user-drag: none;
52+
@include disable-item;
4953
}
5054

5155
select {
@@ -94,6 +98,10 @@ $select-height: 32px;
9498
margin-left: -16px;
9599
}
96100

101+
.md-option[disabled] {
102+
@include disable-item;
103+
}
104+
97105
.md-menu-item .md-list-item-holder {
98106
overflow: visible;
99107
justify-content: flex-start;

0 commit comments

Comments
 (0)