> I think adding support for multiple select is pretty simple. As a quick
> experiment you could create a variant of jhselect that added the word
> multiple in the html.

You're right, it is simple, just a case of putting the attribute:
'multiple' into the <select tag. See my first post, where I create a
variant of jhselect called jhselectmultiple. This works fine.

It's the second part of the task that's foxed me, exploring javascript
to detect and find the multiple selections that have been made.

If only I could find a javascript ref as good as Raul's html ref:
http://blooberry.com/indexdot/html/index2.htm !

It intrigues me that whoever in Sun designed the selectedIndex feature
in javascript (or DOM) didn't think to generalize it to accommodate
the Multiple attribute in <select. Or didn't bother... (but that's me,
grousing again!)

I see the Wikipedia article on javascript contains the quote:
"Anyway I know only one programming language worse than C and that is
Javascript. [...] "
...a rank slander on C, which I'm very fond of.


On Wed, Dec 14, 2011 at 4:34 PM, Eric Iverson <eric.b.iver...@gmail.com> wrote:
> I think adding support for multiple select is pretty simple. As a quick
> experiment you could create a variant of jhselect that added the word
> multiple in the html. Not sure of the details,but something like:
>
> <select multiple ....> instead of the <select ...>
>
> If this works in the sense that it gives you the gui you want, then you
> then need to figure out how the events are triggered for multiple selection
> but I don't think that would be too hard.
>
> On Wed, Dec 14, 2011 at 11:29 AM, Ian Clark <earthspo...@gmail.com> wrote:
>
>> 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
>>
> ----------------------------------------------------------------------
> 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