
I was a bit hasty. I can render a multi-select field easily enough.
However, I'm having difficulty following how selectField makes a value
from the select field accessible from the handler code calling
selectField. Once I figure that out, I can modify multiSelectField
accordingly.
The goal here being to modify selectField so that a list of field
values can be bound .
Here's what I have so far:
multiSelectField is thus far identical in every way to selectField
save for the following change in the Hamlet part.
<select multiple="#{theId}" id="#{theId}" name="#{name}">
My thinking was that the value bound to multiple was arbitary, and I'd
use theId until I figured out something that made more sense.
Here's where I am focusing my efforts next
http://hpaste.org/47774
Specifically
(x', _):_ ->
case lookup x' pairs' of
Nothing -> FormFailure ["Invalid entry"]
Just (y, _) -> FormSuccess y
I'm thinking this is where selectField binds a value from the select
field form. I'm confused by the (x',_):_. At first I thought it meant
that just the first pair in a list of pairs is pattern matched
against, and the rest discarded. But then I ask myself where the list
is coming from. In a select field there would only be one pair, not a
list of them. Here's where I get confused. Because if this is not
where the values of the select field get bound, I don't know where
it's happening.
Is my confusion clear enough such that I could get some clarifying
feedback? If not, what is unclear?
On Sat, Jun 11, 2011 at 11:03 AM, Michael Snoyman
The best way for code contributions in general is to submit a pull request on Github. If that's a problem, sending a patch via email works as well (either directly to me or to web-devel).
Michael
On Sat, Jun 11, 2011 at 1:14 AM, Michael Litchard
wrote: Hey! I just added multiSelectField to the Forms library. I'm only getting the first value selected, but I think that's because of how I'm using multiSelecrField. I'm going to try to change the client code to fix this. I'll let you know how it goes. when I get a maybeMultiSelectField added I'll show you what I have. What would be the best way to submit this?
On Thu, Jun 9, 2011 at 10:05 PM, Michael Snoyman
wrote: Hi Michael,
There's nothing jQuery or Javascript specific about a multi-select field: it's just a normal select field with a "multiple" attribute. I would recommend taking the selectField code from yesod-form and modifying it to be multi-select. I'll likely do this myself eventually, but it could be a good learning experience in Yesod (and a great introduction to contributing to the framework if you're so inclined).
Michael
On Thu, Jun 9, 2011 at 8:29 PM, Michael Litchard
wrote: I'm trying to create a multiple select form, as illustrated on the following: http://api.jquery.com/selected-selector/
Here's the options I see possible:
(1) Write a jQuery widget. (2) Use plain javascript via Julius (3) Use the low-level functions in Yesod.Form to write a widget (4) Use a pre-existing function that does what I need, but am not aware of this functionality
(1) has appeal as it looks like something small I can contribute to the project. It will take me some extra time to figure out the details. But, I had a look at the other jQuery widgets and they seem to provide an approachable model to follow.
(2) This looks like the most straight-forward approach. I'm just learning javascript so would have to figure out how to capture values in Haskell from the form.
(3) This looks like the most difficult way. I don't think I know enough about the low-level functions in Yesod.Form to be able to accomplish this in a timely manner.
(4) This is the best scenario. There's already a way to do this right now, and I just haven't identified it. If this is the case, I would appreciate being pointed in the right direction.
Until informed otherwise, I'm evaluating options 1 and 2. All feedback welcomed. Thanks to all who made Yesod possible.
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners