1.0.1 • Published 4 years ago

@southmedia/smquiz v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

Quiz

Lightweight JavaScript form validation library

Installation and Usage

Install the library with npm install @southmedia/quiz or yarn @southmedia/quiz

ES6

import Quiz from "@southmedia/quiz"

Example

With use custom template:

new Quiz('[data-quiz-inline]', {
  defaultTemplate: false, // For disabled usage default template
  customLabel: 'template-quiz-answer', // This point with usage custom render template for answers ` id template `
  onChange: (oldIndex, newIndex, length, selector) => {
    /**
     * oldIndex - previos index
     * newIndex - current index
     * length - quantity questions
     * selector - parent HTMLElement
     */
  },
  onComplete: (selector, arr) => {
    /**
     * selector - parent HTMLElement
     * arr - selected answers
     */
  },
  onError: (selector, err) => {
    /**
     * selector - parent HTMLElement
     * err - error message
     */
  }
})

With use default template

Ability to use dynamic questions/answers

new Quiz('[data-quiz]', {
  customLabel: 'template-quiz-answer', // This point with usage custom render template for answers ` id template `
  title: "Title Quiz",
  desc: "Lorem ipsum",
  questions: [
    {
      title: "Inside which HTML element do we put the JavaScript?",
      answer: [
        {
          name: "<script>",
          questions: [
            {
              title: "Where is the correct place to insert a JavaScript?",
              answer: [
                {
                  name: "The <head> section"
                },
                {
                  name: "The <body> section"
                },
                {
                  name: "Both the <head> section and the <body> section are correct"
                }
              ]
            }
          ]
        },
        {
          name: "<javascript>",
          questions: [
            {
              title: "What is the correct syntax for referring to an external script called 'xxx.js'?",
              answer: [
                {
                  name: "<script href='xxx.js'>"
                },
                {
                  name: "<script name='xxx.js'>"
                },
                {
                  name: "<script src='xxx.js'>"
                }
              ]
            }
          ]
        },
        {
          name: "<scripting>",
          questions: [
            {
              title: "The external JavaScript file must contain the <script> tag.",
              answer: [
                {
                  name: "True"
                },
                {
                  name: "False"
                }
              ]
            }
          ]
        },
        {
          name: "<js>",
          questions: [
            {
              title: "How do you write 'Hello World' in an alert box?",
              answer: [
                {
                  name: "alert(Hello World)"
                },
                {
                  name: "alertBox('Hello World');"
                },
                {
                  name: "msg('Hello World');"
                },
                {
                  name: "alert('Hello World')"
                },
                {
                  name: "msgBox('Hello World')"
                }
              ]
            }
          ]
        },
      ]
    }
  ],
  onChange: (oldIndex, newIndex, length, selector) => {
    /**
     * oldIndex - previos index
     * newIndex - current index
     * length - quantity questions
     * selector - parent HTMLElement
     */
  },
  onComplete: (selector, arr) => {
    /**
     * selector - parent HTMLElement
     * arr - selected answers
     */
  },
  onError: (selector, err) => {
    /**
     * selector - parent HTMLElement
     * err - error message
     */
  }
})
1.0.1

4 years ago