File tree 5 files changed +86
-4
lines changed
5 files changed +86
-4
lines changed Original file line number Diff line number Diff line change
1
+ import { render , tag , Component , h } from '@/index'
2
+
3
+ @tag ( 'form-demo' )
4
+ class FormDemo extends Component {
5
+ state = {
6
+ show : true ,
7
+ value1 : 'volvo' ,
8
+ value2 : '' ,
9
+ }
10
+
11
+ onChange = ( evt ) => {
12
+ this . state . value1 = evt . target . value
13
+ this . update ( )
14
+ }
15
+
16
+ render ( ) {
17
+ return (
18
+ < div >
19
+ { this . state . show && < select id = "cars" value = { this . state . value1 } onChange = { this . onChange } name = "cars" >
20
+ < option value = "volvo" > Volvo</ option >
21
+ < option value = "saab" > Saab</ option >
22
+ < option value = "mercedes" > Mercedes</ option >
23
+ < option value = "audi" > Audi</ option >
24
+ </ select > }
25
+
26
+ < select id = "cars2" value = { this . state . value2 } name = "cars" >
27
+ < option value = "volvo" > Volvo</ option >
28
+ < option value = "saab" > Saab</ option >
29
+ < option value = "mercedes" > Mercedes</ option >
30
+ < option value = "audi" > Audi</ option >
31
+ </ select >
32
+
33
+ < button onClick = { ( evt ) => {
34
+ this . state . show = ! this . state . show
35
+ this . update ( )
36
+ } } > 验证this.update后表单状态</ button >
37
+ </ div >
38
+ )
39
+ }
40
+ }
41
+
42
+ render ( < form-demo /> , document . body )
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " omi" ,
3
- "version" : " 7.3.9 " ,
3
+ "version" : " 7.3.10 " ,
4
4
"scripts" : {
5
5
"start" : " vite" ,
6
6
"dev-vite" : " vite" ,
Original file line number Diff line number Diff line change @@ -109,8 +109,7 @@ export function setAccessor(
109
109
name !== 'type' &&
110
110
name !== 'css' &&
111
111
! isSvg &&
112
- name in node &&
113
- value !== ''
112
+ name in node
114
113
) {
115
114
//value !== '' fix for selected, disabled, checked with pure element
116
115
// Attempt to set a DOM property to the given value.
Original file line number Diff line number Diff line change @@ -18,4 +18,4 @@ export { Signal } from './signal'
18
18
export { css } from './css-tag'
19
19
export { mixin } from './options'
20
20
export { registerDirective } from './directive'
21
- export const version = '7.3.9 '
21
+ export const version = '7.3.10 '
Original file line number Diff line number Diff line change @@ -72,6 +72,47 @@ describe('dom', () => {
72
72
expect ( parentElement . firstChild . shadowRoot . innerHTML ) . toBe ( '<div><span>abc</span></div>' )
73
73
} )
74
74
75
+ it ( 'form' , ( ) => {
76
+ class Ele extends Component {
77
+
78
+ state = {
79
+ show : true ,
80
+ value1 : 'volvo' ,
81
+ value2 : '' ,
82
+ }
83
+
84
+ installed ( ) {
85
+ this . state . show = false
86
+ this . update ( )
87
+ }
88
+
89
+ render ( props ) {
90
+ return < div >
91
+ { this . state . show && < select id = "cars" value = { this . state . value1 } onChange = { this . onChange } name = "cars" >
92
+ < option value = "volvo" > Volvo</ option >
93
+ < option value = "saab" > Saab</ option >
94
+ < option value = "mercedes" > Mercedes</ option >
95
+ < option value = "audi" > Audi</ option >
96
+ </ select > }
97
+
98
+ < select id = "cars2" value = { this . state . value2 } name = "cars" >
99
+ < option value = "volvo" > Volvo</ option >
100
+ < option value = "saab" > Saab</ option >
101
+ < option value = "mercedes" > Mercedes</ option >
102
+ < option value = "audi" > Audi</ option >
103
+ </ select >
104
+
105
+ </ div >
106
+ }
107
+ }
108
+
109
+ const node = genNode ( )
110
+ define ( node . name , Ele )
111
+ render ( < node . name /> , parentElement )
112
+
113
+ expect ( parentElement . firstChild . shadowRoot . querySelector ( 'select' ) . value ) . toBe ( '' )
114
+ } )
115
+
75
116
it ( 'string style' , ( ) => {
76
117
class Ele extends Component {
77
118
You can’t perform that action at this time.
0 commit comments