Отправлять форму, только если установлен флажок

#html #ruby-on-rails-3 #forms #checkbox

#HTML #ruby-on-rails-3 #формы #флажок

Вопрос:

Я хочу отправлять форму, только если установлен флажок (в отличие от отправки формы через флажок)

Мне не нужно сохранять проверку флажка. Это похоже на «Я согласен с лицензионным соглашением бла-бла-бла»

Предпочитаю не использовать javascript для этого

Спасибо

Комментарии:

1. Я вижу 2 варианта: отправить и доказать, что, если флажок установлен, снова отобразить ту же форму с ошибкой проверки; используйте java script, чтобы отключить кнопку отправки, если флажок не установлен. Кто должен реализовать код, который не отправляет (у нас есть HTML-форма, в браузере нет кода ruby)?

Ответ №1:

Вы можете проверить, установлен флажок или нет, используя код, подобный этому:

 var chkbox = document.getElementById('checkboxID');

if (chkbox.checked === true){
  // it is checked, submit form
}
else {
  // it is not checked, dont submit form
}
  

Комментарии:

1. могу ли я включить этот скрипт в блок формы?

2. @RailsN00b: Что вы подразумеваете под блокировкой формы?

Ответ №2:

Я решил проблему, используя validates :terms_of_service, :acceptance => true в модели и добавив флажок в блок формы.

Это решило эту проблему быстро и просто.