Thanks, Eric.

I guess I was trawling for a simple-stupid answer, to save doing it
the hard way.

I'd thought of a table of checkboxes, but since the list to be checked
is scrollable (and individual items can be hidden) it's not so
straightforward.

Fortunately, in this particular instance, it's easy to arrange for the
engine which governs the list to accumulate selections, and flag them
with stars, so that's the way I'll go. It demands nothing clever from
the gui, which IME is always a good idea for a portable app.

On Wed, Dec 14, 2011 at 2:59 PM, Eric Iverson <eric.b.iver...@gmail.com> wrote:
> There is a "select multiple" html tag. You'll have to dig into the html and
> javascript docs on this and provide new jhs wrappers to make it easy to use
> from J. I think the code will be trivial but the homework to figure out the
> code will be more difficult. Depending on the app requirements a table of
> checkboxes is another way to go (see jal for an example of this).
>
> On Wed, Dec 14, 2011 at 3:24 AM, Ian Clark <earthspo...@gmail.com> wrote:
>
>> Trying to port a j6 jwd app to j7 jhs. It has a listbox accepting
>> multiple selections, defined like this:
>>
>>   xywh 5 16 244 100;cc panel listbox ws_vscroll lbs_multiplesel
>> rightmove bottommove;
>>
>> The JHS framework offers a verb: jhselect to generate a Select object,
>> which IMO is the thing to use in its place. But it only allows single
>> lines to be selected.
>>
>> How do I get multiple selections, *plus* reading back what lines are
>> selected?
>>
>> If I define a variant (the only difference from jhselect being that
>> I've inserted 'multiple' in line 1) ...
>>
>> jhselectmultiple=: 4 : 0
>> 'values size sel'=. y
>> t=. '<select id="<ID>" name="<ID>" class="jhselect" size="<SIZE>"
>> multiple onchange="return jev(event)" >'
>> t=. t hrplc 'ID SIZE SEL';x;size;sel
>> opt=. '<option value="<VALUE>" label="<VALUE>" <SELECTED>><VALUE></option>'
>> for_i. i.#values do.
>>  t=. t,opt hrplc'VALUE
>> SELECTED';(i{values),(i=sel){'';'selected="selected"'
>> end.
>> t=. t,'</select>'
>> )
>>
>> and call it in HBS with a line like this:
>>
>>   'sel'  jhselectmultiple  sel_text ; sel_size ; sel_index
>>
>> then this does indeed generate a Select object with id="sel" which
>> accepts multiple selections.
>>
>> However, I can only see the first selection, using this javascript
>> function (borrowed from jdemo4):
>>
>> function ev_sel_change()
>> {
>>  jbyid("which").innerHTML= JEV+" : "+jbyid("selm").selectedIndex;
>> }
>>
>> I don't know the DOM well enough to know what I should be using instead.
>>
>> I've tried googling for selectedIndex and get this link:
>> http://www.javascriptkit.com/jsref/select.shtml
>> but it merely confirms that the above is the behavior of selectIndex
>> when 'multiple' is specified, without suggesting what to use instead.
>>
>> (Does anyone know a better DOM reference link?)
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to