File tree 3 files changed +39
-2
lines changed
3 files changed +39
-2
lines changed Original file line number Diff line number Diff line change @@ -121,6 +121,17 @@ export default class Form extends View {
121
121
elem . checked = true ;
122
122
}
123
123
break ;
124
+ case 'select' :
125
+ if ( elem . multiple ) {
126
+ elem . options . forEach ( ( opt ) => {
127
+ // eslint-disable-next-line no-param-reassign
128
+ opt . selected = this . constructor . $selected ( opt . value , value ) ;
129
+ } ) ;
130
+ } else {
131
+ // eslint-disable-next-line no-param-reassign
132
+ elem . value = `${ value } ` ;
133
+ }
134
+ break ;
124
135
default :
125
136
// eslint-disable-next-line no-param-reassign
126
137
elem . value = `${ value } ` ;
@@ -129,6 +140,22 @@ export default class Form extends View {
129
140
} ) ;
130
141
}
131
142
143
+ static $selected ( value , src ) {
144
+ if ( src ) {
145
+ if ( typeof src === 'string' ) {
146
+ return value === src ;
147
+ }
148
+ if ( Array . isArray ( src ) ) {
149
+ for ( let i = 0 ; i < src . length ; i += 1 ) {
150
+ if ( this . $selected ( value , src [ i ] ) ) {
151
+ return true ;
152
+ }
153
+ }
154
+ }
155
+ }
156
+ return false ;
157
+ }
158
+
132
159
get values ( ) {
133
160
const values = { } ;
134
161
Array . from ( this . $form . elements ) . forEach ( ( elem ) => {
@@ -140,6 +167,16 @@ export default class Form extends View {
140
167
values [ key ] = elem . value ;
141
168
}
142
169
break ;
170
+ case 'select' :
171
+ if ( elem . multiple ) {
172
+ values [ key ] = [ ] ;
173
+ elem . selectedOptions . forEach ( ( opt ) => {
174
+ values [ key ] . push ( opt . value ) ;
175
+ } ) ;
176
+ } else {
177
+ values [ key ] = elem . value ;
178
+ }
179
+ break ;
143
180
default :
144
181
values [ key ] = elem . value ;
145
182
break ;
Original file line number Diff line number Diff line change @@ -147,7 +147,7 @@ export default class Provider extends Emitter {
147
147
$fetch ( url , req ) {
148
148
let status ;
149
149
let changed = false ;
150
- this . dispatchEvent ( EVENT_STARTED , this , this . $origin + url ) ;
150
+ this . dispatchEvent ( EVENT_STARTED , this , this . $origin + ( url || '' ) ) ;
151
151
fetch ( this . $origin + url , req )
152
152
. then ( ( response ) => {
153
153
status = response ;
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " @djthorpe/js-framework" ,
3
- "version" : " 0.0.26 " ,
3
+ "version" : " 0.0.27 " ,
4
4
"description" : " Javascript Framework" ,
5
5
"main" : " dist/js/index.js" ,
6
6
"scripts" : {
You can’t perform that action at this time.
0 commit comments