4

在 HTML 中,可以使用非唯一名称指定多个字段,如下所示:

<input type="checkbox" name="breakfast" value="eggs">
<input type="checkbox" name="breakfast" value="bacon">

这样,在提交时,查询参数就会像(如果两个框都被勾选)一样传递breakfast=eggs&breakfast=bacon。CGI 规范声明这应该被解释为一个数组或值列表,并且这种技术对于动态大小的输入列表也很有用:

<input type="text" name="url">
<input type="button" value="More…"
       onclick="var s = document.createElement('input');
                s.type='text';
                s.name='url';
                this.form.appendChild(s);
                return false;">

但是,我看不到从 Yesod 中的表单获取列表值输入的方法。有没有办法做这样的事情?

4

1 回答 1

3

大多数预建字段都适用于具有单个输入的输入(multiSelectField 有一个明显的例外)。为了实现您正在寻找的东西,您可能想要创建一个自定义Field。请注意,该fieldParse函数采用Text值列表,特别是为了允许您的用例。

关于表单的章节包括关于自定义字段的部分。

于 2012-07-14T18:49:29.007 回答