2013-04-01 60 views
1

我想添加另一個按鈕到工作monadic獲取​​表單,這觸發了整個表單的不同處理(如預覽和提交按鈕常見於論壇帖子表單中)。多個按鈕形式導致無效參數錯誤

於是,我就遵循這個答案的建議this older question

首先,添加另一個名爲輸入按鈕:

<input type="submit" name="preview" value="Preview"> 

其次,增加了呼叫runInputGet:

((res,widget),enc) <- runFormGet myform 
isPreview <- runInputGet $ iopt boolField "preview" 
... -- pre-processing the form input, i.e. basic error checks 
case (isPreview,res') of 
    (Just True, Just checkedRes) -> ... -- preview processing 
    (_  , Just checkedRes) -> ... -- proper processing 

不幸的是,它不起作用:每當我按下我的新按鈕,我得到一個無效的參數頁,說有一個無效的布爾與名稱atta避開第二個提交按鈕。

與前面的問題不同的是,我使用GET表單而不是POST。然而,在我看來,我需要在原來的形式布爾領域,但在原來的單一產品形式具有相同的名稱添加一個可選的布爾場都不會改變任何東西:

_ <- mopt boolField ((String.fromString "preview") { fsName = "preview" }) Nothing 

(我不知道如何處理這個mopt的結果,因爲我既不需要視圖(不應該向用戶顯示額外的表單字段)也不需要結果(因爲這是額外的runInputGet已經提供的)

回答

2

如果您查看boolField的代碼,您會發現它對該值的格式有嚴格的要求,相反,您可能想要使用textField - 點什麼 - 然後簡單地測試值是否存在。

+0

謝謝,現在工作正常! – Steffen