>
> Just lazy I guess ;)
> In my example the are 6 groups with up to 12 checkboxes in every group. 
> Often but not always a whole group or several groups have to be checked 
> together. Would be nice to only have to click 6 times instead of 40 times :D
>

The thing is, this does involve a bit of coding and I'm a bit reluctant to 
be doing and testing all that just for your special usecase. To begin with, 
I would certainlyconstruct the tag table using javascript, that way you can 
easily add the desired toggle all inputs into the table head cells 
programatically.

Anyway, here's some UNTESTED code for the script section that might point 
you towards how it could be done. If you don't have any js knowledge, we'll 
need to work on it further.

//make jQuery available via $
(function($){

    //use a two-dimensional configuration array to define the tag categories
    cats = [
    [
    'cat 1 title',
    'cat 1 item 1 title|cat 1 item 1 tag',
    'cat 1 item 2 title|cat 1 item 2 tag'
    ],[
    'cat 2 title',
    'cat 2 item 1 title|cat 2 item 1 tag',
    'cat 2 item 2 title|cat 2 item 2 tag'
    ]
    ];

    //first, determine the number of rows
    var rows = 0;
    cats.map(function(cat){
        rows = Math.max(rows, cat.length);
    })

    var r, c, cat, $td, $tr,
        $table = $('<table/>').addClass('borderless smallTable table100').
appendTo(place),
        $tbody = $('<tbody/>').appendTo($table),
        //the function that toggles all tags for a category
        toggleAll = function(){
            //get the checkbox to toggle all
            var $i = $(this),
                //and the containing table
                $table = $i.closest('table');
            //get all related tag inputs and set value to that of this 
checkbox
            $('[rel="' +  $i.attr('toggle') + '"]', $table).val($i.val());
        };

    //loop the categories and append the tags to the table...
    for(r = 0; r<rows; r++){
    //add row
    $tr = jQuery('<tr/>').appendTo($tbody);
    //when header
    if(r==0){
        //add header class
        $tr.addClass('table-header');
    }
    //loop cats
    for(c==0;c< cats.length;c++){
        //get category
        cat = cats[c];
        //when table head
        if(r==0){
            $td = jQuery('<td>')
                .html(cat[0])
                .appendto($tr);
            jQuery('<input/>')
                .text('all')
                .attr('toggle','cat'+c)
                .click(toggleAll)
                .appendTo($td);
            //table body
        } else {
            //get tag definition and split by pipe
            var t = cat[r].split('|');
            $td = jQuery('<td>').appendTo($tr);
            jQuery('<input name ="tags[]" type="checkbox"/>')
                .addClass('element checkbox')
                .attr('rel','cat'+c)
                .val(t[1])
                .appendTo($td);
            jQuery('<label/>')
                .addClass('choice')
                .attr('for','tags')
                .text(val[0])
                .appendTo($td);
        }
    }
};

})(jQuery);

They shouldn't. It's mostly as a precation against error. The form is 
> geared toward old, not-so-computer-savy-old-ladies ;)


Well, then you need to sanitize any potentially corrupt values in your *
submitHandler*, e.g...

//get title input
var $title = jQuery('the selector for the title input');
//set value to trimmed value, removing any blanks
$title.val($.trim($title.val());

Tobias.

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywiki+unsubscr...@googlegroups.com.
To post to this group, send email to tiddlywiki@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to