JSFiddle - React, Tailwind, and code Playground

by Nahuel Scotti

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.12/vue.min.js"></script>
<div id="app">
  <h1>{{ dni }}</h1>
  <input v-on:click="dni = generate()" type="button" value="GENERATE NEW DNI">
</div>

CSS

#app { 
  padding: 30px;
  min-height: 65px;
}

* {
  box-sizing: border-box;
  font-family: "Roboto", "Helvetica";
  font-weight: 300;
  font-size: 28px;
  margin: 0;
}

input[type="button"] {
  font-size: 18px;
}

JavaScript

var vue = new Vue({
  el: '#app',
  data: {
    dni: ''
  },
  methods: {
    generate: function() {
      for (s = '', i = 0; i < 8; i++) s += Math.floor(Math.random() * 9);
      return s + 'TRWAGMYFPDXBNJZSQVHLCKET'.substr(parseInt(s) % 23, 1);
    }
  }
});

vue.dni = vue.generate();