preQuiz.js 3.12 KB
Newer Older
김민수's avatar
김민수 committed
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import React from 'react';
// import logo from './logo.svg';
import './Quiz.css';


const question = [
  { Q: "6 X 4 ?", Choose: [6, 12, 18, 24], A: "" },
  { Q: "3 + 3 ?", Choose: [2, 4, 6, 8], A: "" },
  { Q: "3 - 1 ?", Choose: [1, 2, 3, 4], A: "" }
]

class Quiz extends React.Component {
  constructor(props) {
    super(props)
    // this.setAnswer = this.setAnswer.bind(this)
    this.setQuestion = this.setQuestion.bind(this)
    this.ShowQuiz = this.ShowQuiz.bind(this)
    this.answerbox = this.answerbox.bind(this)
    this.state = {
      ...question[0],
      i: 0,
      page: 0,
    }
    // this.textInput = React.createRef()
        
  }
  ShowQuiz() {
    this.setState({ page: 1 })
  }
  setQuestion() {
    //값이 입력되지 않은채로 넘겨졌을 때 문제 해결 해야 함-sj-
    this.setState({ ...question[this.state.i + 1], i: this.state.i + 1 })

  }
//answerbox - answer박스의 값을 네임리스트로 받아와서 값을 localstorage에 저장 
  answerbox() {
    let answers = document.getElementsByName('answer');
    let count = answers.length
    // var checked_index = -1;
    var checked_value = '';

    for (var i = 0; i < count; i++) {
      if (answers[i].checked) {
        // checked_index = i;
        checked_value = answers[i].value;
        localStorage.setItem('answer-'+i, checked_value)
      }
    }
    // alert('선택된 항목 인덱스: ' + checked_index + '\n선택된 항목 값: ' + checked_value);


    // if (document.getElementsByName("answer")[i].checked === true) {
      
    //   alert(document.getElementsByName("answer")[i].value);
    // }


  }

  // setAnswer(e) {
  //   question[this.state.i]["A"] = e.target.value
  //   this.setState({ v: e.target.value })
  //   console.log(this.state)
  //   console.log(question)
  // }
  render() {
    if (this.state.page === 1) {
      this.answerbox()
      if (this.state.i === question.length) {
        return (
          <div>
            <h2>수고하셨습니다!</h2>
          </div>
        )
      }
      else {
        return (
          <div className="Quiz">
            <h2>Q:{this.state.Q}</h2>
            {this.state.Choose.map((a) =>
              <div>
                <input type="radio" name='answer' id={a} value={a} /*ref={this.textInput}*/ /> 
                <label for={a}>{a}</label>
                

              </div>)}
            <div className="App">
              정답을 입력하세요
            </div>
            {/* <div>
              <input type="text" value={this.state.v} name="A" onChange={this.setAnswer} />
            </div> */}
            <button type="button" onClick={setTimeout(this.setQuestion, 2000)}>다음</button>
          </div>
        )
      }
    }
    else {
      return (
        <div className="Box">
          <div className="Main">
            <h1> Calculus</h1>
          </div>
          <div className="Name">
            이름을 입력하세요
          <input onChange={(event) => { console.log(event.target.value) }} />
          </div>
          <button className="QuizStart" onClick={this.ShowQuiz}>Quiz Start !</button>
        </div>

      )
    }
  }
}

export default Quiz;