是否有可能使用“onclick”设置在Yesod中调用Haskell函数?
我想要调用的函数:
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 :(得分:0)
不直接以你描述的方式。你可以让onclick
使用一些Javascript来进行AJAX调用,这将触发一个处理函数来运行。