jQuery addClass example

Change class name on click in jQuery

by ChrisStanyon

HTML

<form name="json_test" id="json_test">
  <span class="lbl">Image Name</span><input type="text" name="imagename"><br>
  <span class="lbl">Caption</span><input type="text" name="image_caption"><br>
  <span class="lbl">Alt</span><input type="text" name="alt"><br>
  <button role="submit" class="btn btn-success">Submit</button>
</form>

CSS

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

#banner-message {
  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;
}

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

#banner-message.alt button {
  background: #fff;
  color: #000;
}

span.lbl {
  width:128px;
  float: left;
  color: white;
}

JavaScript

var json_txt = '{"1":{"imagename":"ruby.jpg","image_caption":"Ruby Slippers"},"2":{"imagename":"emerald.jpg","image_caption":"Emerald City"},"3":{"imagename":"brickroad.jpg","image_caption":"The Yellow Brick Road"}}';

var obj = JSON.parse(json_txt);

// This works
//	obj.a4 = {};
//obj.a4.imagename = "diamonds.jpg";
//obj.a4.image_caption = "Diamonds are forever";

var count = Object.keys(obj).length;

//obj[count+1] = {"imagename": "diamonds.jpg","image_caption":"Diamonds are forever"};

delete obj["2"];
console.log(Object.keys(obj).length);
console.log(obj);


$("#json_test").on('submit',function(e){
    e.preventDefault();
    var count = Object.keys(obj).length;
    obj[count+1] = {}
    $(":text",this).each(function(i,v) {
        console.log(v)
        var f_name = $(this).attr("name");
        var f_value = $(this).val();
        obj[count+1][f_name] = f_value;
    });
    console.log(obj);
});