今天和虹吸管撞上了路障。
它似乎无法处理将表单值序列化为特定用例的JSON :一组复选框,每个复选框都带有一个单独的值,但都命名相同。
<input type="checkbox" name="cats" value="Whiskey">
<input type="checkbox" name="cats" value="Tango">
<input type="checkbox" name="cats" value="Cash">我重写了复选框读取器,给出了复选框的值:
Backbone.Syphon.InputReaders.register('checkbox', function(el){
return el.val(); //fetch value not the boolean
});现在,我得到的是最后一个选定的值,而不是所有选定值的数组。
有人处理过这事吗?
发布于 2013-08-15 06:12:35
经过几个小时的努力,我有了一些发现:
因此,有了这些知识,我就可以通过以下3件事情获得复选框值,作为一个值数组:
。
Backbone.Syphon.InputReaders.register('checkbox', function (el) {
return el.val();
});
Backbone.Syphon.KeyAssignmentValidators.register("checkbox", function ($el, key, value) {
return $el.prop("checked");
});
<input type="checkbox" name="cats[]" value="Whiskey">
<input type="checkbox" name="cats[]" value="Tango">
<input type="checkbox" name="cats[]" value="Cash">发布于 2014-11-18 11:29:07
dbrin的一个问题是,常规复选框(而不是数组)会受到影响,因此您将得到带有选中输入的上的字符串值‘,以及带有未选中输入的布尔值false。我找到了这个解决方案:
Backbone.Syphon.InputReaders.register('checkbox', function ($el) {
return ($el.attr('name').endsWith('[]')) ? $el.val() : $el.prop("checked");
});
Backbone.Syphon.KeyAssignmentValidators.register("checkbox", function ($el, key, value) {
return ($el.attr('name').endsWith('[]')) ? $el.prop("checked") : true;
});https://stackoverflow.com/questions/18243275
复制相似问题