2012-07-14 86 views
3

在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中的表單的輸入。有沒有辦法做這樣的事情?

回答

3

大多數預構建字段在輸入上使用單個輸入(具有multiSelectField的顯着異常)。要達到您要查找的內容,您可能需要創建自定義Field。請注意,fieldParse函數採用Text值的列表,專門用於允許您的用例。

chapter on forms包含關於自定義字段的部分。