Skip to content

Instantly share code, notes, and snippets.

@leompeters
Last active August 29, 2015 14:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leompeters/6cffcc1e8254b4c7c720 to your computer and use it in GitHub Desktop.
Save leompeters/6cffcc1e8254b4c7c720 to your computer and use it in GitHub Desktop.
Add and remove row dynamically.
Add and remove row dynamically.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dynamic Rows (by LeoM)</title>
<!-- Bootstrap compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/2.1.1/css/bootstrap.min.css">
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<h1>Dynamic Rows</h1>
<legend>
Sub-projects
<button type="button" id="add-subproject"
class="btn btn-small pull-right" >
<i class="icon-plus"></i>
Add a sub-project
</button>
</legend>
<div class="row-fluid subproject">
<div class="span4">
<input type="text" class="span12 required"
data-name="subproject-name" value="" />
</div>
<div class="span2">
<input type="text" class="span12 toggl-hours required"
data-name="subproject-time-allowed" value="" />
</div>
<div class="span3">
<select data-name="subproject_toggl_task" class="span12">
</select>
</div>
<div class="span3">
<a class="btn btn-small btn-info save-subproject" href="#">
Save
</a>
<a class="btn btn-small btn-danger remove-subproject" href="#">
Remove
</a>
<input type="hidden" class="input-medium"
data-name="subproject-project-id" value="" />
</div>
</div> <!-- /#subproject -->
<div id="subprojects-end"></div>
</div>
</div>
</div>
<!-- Latest JQuery library -->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!-- Bootstrap compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/2.1.1/js/bootstrap.min.js"></script>
<!-- Page JavaScript library -->
<script src="script.js"></script>
</body>
</html>
// An object literal
var subProject = {
projectId: 0,
addSubProject: function() {
var projectId = $("input[data-name='hidden-project-id']").val();
// time = new Date().getTime();
// regexp = new RegExp($(this).data("id"), "g");
divSubproject = $("<div />").attr("class", "row-fuid subproject");
// SubProject Name
divSubprojectName = $("<div />")
.attr("class", "span4")
.appendTo(divSubproject);
inputSubprojectName = $("<input />")
.attr("type", "text")
.attr("class", "span12 required")
.attr("data-name", "subproject-name")
.appendTo(divSubprojectName);
// SubProject Hours
divSubprojectHours = $("<div />")
.attr("class", "span2")
.appendTo(divSubproject);
inputSubprojectHours = $("<input />")
.attr("type", "text")
.attr("class", "span12 toggl-hours required")
.attr("data-name", "subproject-time-allowed")
.appendTo(divSubprojectHours);
// SubProject Toggl Taks Id
divSubprojectTogglTaskId = $("<div />")
.attr("class", "span3")
.appendTo(divSubproject);
selectSubprojectTogglTaskId = $("<select />")
.attr("class", "span12")
.attr("data-name", "subproject-time-allowed")
.appendTo(divSubprojectTogglTaskId);
// Button to remove the subproject
divSubprojectActions = $("<div />")
.attr("class", "span3")
.appendTo(divSubproject);
linkSubprojectSave = $("<a />")
.attr("href", "#")
.attr("class", "btn btn-small btn-info save-subproject")
.text("Save")
.appendTo(divSubprojectActions);
spacer = $("<span />").text(" ").appendTo(divSubprojectActions);
linkSubprojectRemove = $("<a />")
.attr("href", "#")
.attr("class", "btn btn-small btn-danger remove-subproject")
.text("Remove")
.appendTo(divSubprojectActions);
// SubProject Project Id
inputSubprojectProjectId = $("<input />")
.attr("type", "hidden")
.attr("data-name", "subproject-project-id")
.attr("value", projectId)
.appendTo(divSubprojectActions);
$('#subprojects-end').before(divSubproject);
},
removeSubProject: function (target) {
target.closest('div.subproject').remove();
target.closest('div.subproject').hide();
}
};
$(document).ready(function () {
// Click on add subproject
$("body").on("click", "#add-subproject", function(event) {
subProject.addSubProject();
return event.preventDefault();
});
// $("#add-subproject").click( function() {
// subProject.addSubProject();
// });
// Click on remove subproject
$("body").on("click", ".remove-subproject", function(event) {
subProject.removeSubProject($(this));
return event.preventDefault();
});
// $(".remove-subproject").click( function( e ) {
// subProject.removeSubProject( e );
// });
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment