Skip to content

Commit 56b0f61

Browse files
20 - Handle a Checkbox in React
1 parent cdc51cf commit 56b0f61

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

src/reactify-ui/src/posts/PostCreate.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class PostCreate extends Component {
88
super(props)
99
this.handleSubmit = this.handleSubmit.bind(this)
1010
this.handleInputChange = this.handleInputChange.bind(this)
11+
this.handleDraftChange = this.handleDraftChange.bind(this)
1112
this.clearForm = this.clearForm.bind(this)
1213
this.postTitleRef = React.createRef()
1314
this.postContentRef = React.createRef()
@@ -53,20 +54,12 @@ class PostCreate extends Component {
5354

5455
handleSubmit(event){
5556
event.preventDefault()
56-
// console.log(this.state)
5757
let data = this.state
58-
if (data['draft'] === 'on'){
59-
data['draft'] = true
60-
} else {
61-
data['draft'] = false
62-
}
63-
// console.log(data)
6458
this.createPost(data)
6559
}
6660

6761
handleInputChange(event){
6862
event.preventDefault()
69-
console.log(event.target.name, event.target.value)
7063
let key = event.target.name
7164
let value = event.target.value
7265
if (key === 'title'){
@@ -79,6 +72,12 @@ class PostCreate extends Component {
7972
})
8073
}
8174

75+
handleDraftChange(){
76+
this.setState({
77+
draft: !this.state.draft
78+
})
79+
}
80+
8281
clearForm(event){
8382
if (event){
8483
event.preventDefault()
@@ -105,6 +104,7 @@ class PostCreate extends Component {
105104

106105
render(){
107106
const {publish} = this.state
107+
let thisComp = this
108108
return (
109109
<form onSubmit={this.handleSubmit} ref={(el) => this.postCreateForm = el}>
110110
<div className='form-group'>
@@ -126,8 +126,9 @@ class PostCreate extends Component {
126126
</div>
127127
<div className='form-group'>
128128
<label for='draft'>
129-
<input type='checkbox' id='draft' name='draft' className='mr-2' onChange={this.handleInputChange}/>
129+
<input type='checkbox' checked={this.state.draft} id='draft' name='draft' className='mr-2' onChange={this.handleDraftChange}/>
130130
Draft </label>
131+
<button onClick={(event)=>{event.preventDefault();this.handleDraftChange()}}>Toggle Draft</button>
131132
</div>
132133
<div className='form-group'>
133134
<label for='publish'>Publish Date</label>
@@ -140,7 +141,7 @@ class PostCreate extends Component {
140141
value={publish}
141142
required='required'/>
142143
</div>
143-
<button className='btn btn-primary'>Save</button>
144+
<button type='submit' className='btn btn-primary'>Save</button>
144145
<button className='btn btn-secondary' onClick={this.clearForm}>Cancel</button>
145146
</form>
146147
)

src/staticfiles/js/reactify-django.ui.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)