diff --git a/vendor/assets/javascripts/backbone_datalink.js b/vendor/assets/javascripts/backbone_datalink.js index 15683c6..fc02556 100644 --- a/vendor/assets/javascripts/backbone_datalink.js +++ b/vendor/assets/javascripts/backbone_datalink.js @@ -1,4 +1,7 @@ (function($) { + $.fn.isCheckable = function() { + return ["checkbox", "radio"].indexOf(this.attr("type")) >= 0; + }; return $.extend($.fn, { backboneLink: function(model) { return $(this).find(":input").each(function() { @@ -6,13 +9,21 @@ el = $(this); name = el.attr("name"); model.bind("change:" + name, function() { - return el.val(model.get(name)); + if (el.isCheckable()) { + return el.prop("checked", model.get(name)); + } else { + return el.val(model.get(name)); + } }); return $(this).bind("change", function() { var attrs; el = $(this); attrs = {}; - attrs[el.attr("name")] = el.val(); + if (el.isCheckable()) { + attrs[el.attr("name")] = el.is(":checked"); + } else { + attrs[el.attr("name")] = el.val(); + } return model.set(attrs); }); });