2015-01-02 102 views
1

有沒有可能在Yesod中用「onclick」設置調用Haskell函數?在Yesod中調用Haskell函數onclick

我要調用的函數:

save_all :: WidgetT App IO[()] save_all = mapM save_cur_answers (exam_questions exam_1)

save_cur_answers :: Question -> WidgetT App IO() 
save_cur_answers quest = do 
q_box1 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 0)) 
q_box2 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 1)) 
q_box3 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 2)) 
q_box4 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 3)) 

setSession (question_id quest) $ bool_to_cookie [q_box1, q_box2, q_box3, q_box4] 

<input type="radio" onclick="save_all" name="tabs" id="tab#{question_id quest}"> 

我想所有的複選框的結果,並將其保存在cookie每次我點擊單選按鈕。 save_cur_answers使用唯一的answer_id查找複選框,返回值爲Bool,並存儲所有4個值。

回答

0

不是你直接描述的方式。你可以讓onclick使用一些Javascript進行AJAX調用,這將觸發一個處理函數來運行。