Commit b719cbb9 authored by Marc Neuwirth's avatar Marc Neuwirth Committed by marcneuwirth
Browse files

Removed 'return false' in favor of preventDefault.

Moved preventDefault to the top
parent 6ff118cd
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -31,11 +31,11 @@
			}
		};
		var totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS").attr("autocomplete", "off");
		var nextIndex = parseInt(totalForms.val());
		var nextIndex = parseInt(totalForms.val(), 10);
		var maxForms = $("#id_" + options.prefix + "-MAX_NUM_FORMS").attr("autocomplete", "off");
		// only show the add button if we are allowed to add more items,
        // note that max_num = None translates to a blank string.
		var showAddButton = maxForms.val() == '' || (maxForms.val()-totalForms.val()) > 0;
		var showAddButton = maxForms.val() === '' || (maxForms.val()-totalForms.val()) > 0;
		$(this).each(function(i) {
			$(this).not("." + options.emptyCssClass).addClass(options.formCssClass);
		});
@@ -52,7 +52,8 @@
				$(this).filter(":last").after('<div class="' + options.addCssClass + '"><a href="javascript:void(0)">' + options.addText + "</a></div>");
				addButton = $(this).filter(":last").next().find("a");
			}
			addButton.click(function() {
			addButton.click(function(e) {
				e.preventDefault();
				var totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS");
				var template = $("#" + options.prefix + "-empty");
				var row = template.clone(true);
@@ -78,14 +79,15 @@
				// Insert the new form when it has been fully edited
				row.insertBefore($(template));
				// Update number of total forms
				$(totalForms).val(parseInt(totalForms.val()) + 1);
				$(totalForms).val(parseInt(totalForms.val(), 10) + 1);
				nextIndex += 1;
				// Hide add button in case we've hit the max, except we want to add infinitely
				if ((maxForms.val() != '') && (maxForms.val()-totalForms.val()) <= 0) {
				if ((maxForms.val() !== '') && (maxForms.val()-totalForms.val()) <= 0) {
					addButton.parent().hide();
				}
				// The delete button of each row triggers a bunch of other things
				row.find("a." + options.deleteCssClass).click(function() {
				row.find("a." + options.deleteCssClass).click(function(e) {
					e.preventDefault();
					// Remove the parent form containing this button:
					var row = $(this).parents("." + options.formCssClass);
					row.remove();
@@ -98,7 +100,7 @@
					var forms = $("." + options.formCssClass);
					$("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length);
					// Show add button again once we drop below max
					if ((maxForms.val() == '') || (maxForms.val()-forms.length) > 0) {
					if ((maxForms.val() === '') || (maxForms.val()-forms.length) > 0) {
						addButton.parent().show();
					}
					// Also, update names and ids for all remaining form controls
@@ -110,17 +112,15 @@
							updateElementIndex(this, options.prefix, i);
						});
					}
					return false;
				});
				// If a post-add callback was supplied, call it with the added form:
				if (options.added) {
					options.added(row);
				}
				return false;
			});
		}
		return this;
	}
	};
	/* Setup plugin defaults */
	$.fn.formset.defaults = {
		prefix: "form",					// The form prefix for your django formset
@@ -132,5 +132,5 @@
		formCssClass: "dynamic-form",	// CSS class applied to each form in a formset
		added: null,					// Function called each time a new form is added
		removed: null					// Function called each time a form is deleted
	}
	};
})(django.jQuery);