jQuery addClass example

Change class name on click in jQuery

by Kushal Jayswal

HTML

<div id="id">
  <button>Add more</button>
  <div>
    <input required class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value="">
  </div>
  
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#id {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#id.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#id.alt button {
  background: #fff;
  color: #000;
}

JavaScript

// find elements
var id = $("#id > div")
var id1 = $("#id1")

var input = $("input")
var inputCopy;
var button = $("button")

// handle click and add class
button.on("click", function() {
  $('<input required="" class="form-control js-validate-hoursToAdd timetoadd" step="0.01" name="calculations[settingIndex][hoursToAdd][calculationIndex]" type="number" value=""><br>').appendTo(id);
  /* addMore(e.currentTarget, e.currentTarget.value);
  console.log('new input', e.currentTarget); */
})

    

$(document.body).on("blur", '.timetoadd', function() {
  this.value = parseFloat(this.value).toFixed(2);
  inputCopy = input;
})

function addMore(e, value) {
  inputCopy = e.clone()
  id.prepend($(inputCopy));
}