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 に答える