Опа: предотвратить перезагрузку страницы при отправке формы - PullRequest
3 голосов
/ 09 октября 2011

Как в Opa как предотвратить перезагрузку страницы при отправке формы? Когда нажата кнопка submit, я хочу выполнить некоторую проверку на стороне клиента и отправить форму, только если проверка прошла успешно.

Я работаю с этой формой:

<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, когда я экспериментировал с ним).

Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 10 октября 2011

В источнике из WFormBuilder, я нашел этот атрибут в виде html: options:onsubmit="prevent_default"

Итак, у фрагмента есть поведение, которое я искал:

<form onready={_ -> ready()} id=#form_id options:onsubmit="prevent_default">
  <input type="submit" value="Submit" />
</form>

ready() : void =
  do ignore(Dom.bind(#form_id, {submit}, ( _ -> Log.notice("submit","submitted"))))
...