JSFiddle - React, Tailwind, and code Playground
HTML
<label for="Title">Title</label>
<input id="Title" type="text" />
<div id="tags">
<div class="tag">
<input id="tag0" type="checkbox" name="SelectedTags" value="1" />
<label for="tag0">First tag</label>
</div>
<div class="tag">
<input id="tag1" type="checkbox" name="SelectedTags" value="2" />
<label for="tag1">Second tag</label>
</div>
</div>
<div id="addbuttoncontainer">
<button type="button" id="addtag">Add new tag</button>
</div>
<div id="dialog">
<form>
<label for="Name">Name</label>
<input type="text" id="Name" name="Name" />
<button type="button" id="createtag">Create</button>
<button type="button" id="canceltag">Cancel</button>
</form>
</div>
CSS
#dialog {
//clear: both;
display: none;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: rgba(0,0,0,0.1);
}
#dialog form {
width: 450px;
position: fixed;
left: 50%;
top: 50%;
margin: -100px 0 0 -225px;
border: solid 1px #aaa;
border-radius: 5px;
background-color: white;
padding: 10px;
}
#addbuttoncontainer {
clear:both;
}
.tag {
float:left;
width:30%;
}
JavaScript
var dialog = $('#dialog');
var form = dialog.children('form');
var tags = $('#tags');
$('#addtag').click(function() {
dialog.show();
});
$('#createtag').click(function() {
var name = $('#Name').val();
var id = tags.children('.tag').length;
var div = $('<div></div>').addClass('tag');
div.append($('<input/>').val(id).attr({ type: 'checkbox', name: 'selectedTags', id: id }).prop('checked', true));
div.append($('<label></label>').attr('for', id).text(name));
tags.append(div);
form.get(0).reset();
dialog.hide();
});
$('#canceltag').click(function() {
form.get(0).reset();
dialog.hide();
});