3
在Opa中,如何在提交表單時阻止頁面重新加載?當按下提交時,我想執行一些客戶端驗證,並且只有在驗證通過時才提交表單。Opa:在提交表單時阻止頁面重新加載
我用這種形式的工作:
<form onready={_ -> ready()} id=#form_id>
<input type="submit" value="Submit" />
</form>
此功能成功地記錄其上提交的消息,但仍然重新加載頁面:
ready() : void =
do ignore(Dom.bind(#form_id, {submit}, (_ -> Log.notice("submit","submitted"))))
此功能無法登錄的消息,並重新加載頁:
ready() : void =
do ignore(Dom.bind_with_options(#form_id, {submit}, (_ -> Log.notice("submit","submitted")), [{prevent_default}]))
我使用WFormBuilder
,因爲我需要避免對錶單的html和驗證錯誤信息進行了細粒度的控制(當我嘗試使用它時,似乎並不是WFormBuilder
中的一個選項)。
感謝您的幫助。
我仍然不能確定爲什麼是這樣的方式OPA處理這個。有沒有人對「options」屬性和「prevent_default」值的用途有所瞭解?它似乎有非常[有限的文檔](http://doc.opalang.org/index.html#_syntax_extensions)。 – nrw
'options:onsubmit'是onsubmit事件的事件處理程序的選項列表。在JS事件中,'prevent_default'與[returned false]具有相同的效果(http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false)或者執行'e.preventDefault()'處理程序。技術上的原因是爲什麼不能在Opa中的事件處理程序本身做出這個決定(長話短說:事件處理程序可能是異步RPC調用)。簡而言之:我認爲你完美地回答了你的問題:) – akoprowski
感謝澄清,亞當。 – nrw