2013-04-26 5 views
5

W jaki sposób po prostu sprawdzasz, czy pole wyboru jest zaznaczone w szynach? To pole wyboru dotyczy umowy użytkownika końcowego. I znajduje się w oknie modalnym.Jak po prostu sprawdzić pole wyboru w szynach

Powiedzmy mam wyboru:

<%= check_box_tag '' %> 


Gdzie i jak należy zatwierdzić to?

Widziałem większość postów dotyczących sprawdzania checkbox tutaj, ale żaden z nich nie odpowiada moim potrzebom.

Odpowiedz

14

Dodawanie

validates :terms_of_service, :acceptance => true 

do modelu powinno wystarczyć. Aby uzyskać więcej informacji i opcji, zobacz numer here.

Jeśli jednak akceptacji warunków nie jest częścią formularza dla Twojego modelu, należy użyć walidacji po stronie klienta, czyli JavaScript, tak (w jQuery):

function validateCheckbox() 
{ 
    if($('#checkbox').attr('checked')){ 
     alert("you have to accept the terms first"); 
    } 
} 

Możesz dodać skrypt złożyć do widoku tak:

<%= javascript_include_tag "my_javascipt_file" %>

i wywołać funkcję kliknięcia:

<%= submit_tag "Submit", :onclick: "validateCheckbox();" %>

EDYCJA: możesz przypisać identyfikator do swojego pola wyboru w następujący sposób: check_box_tag :checkbox. Kod HTML będzie wyglądać tak: <input id="checkbox" Aby uzyskać więcej opcji, zobacz these examples.

+0

W takim przypadku, w jaki sposób "nazwa" pole wyboru? – geirmash

+0

@ user2019492 - zapoznaj się z edytorem – kostja

+2

kostja dostarcza całkiem fajne wyjaśnienie, jednak ja osobiście wolę zatwierdzanie akceptacji zarówno po stronie klienta, jak i w moich kontrolerach, a jeśli zaakceptuję, przesyłam bieżący czas, powiedzmy modelowi użytkownika do jego " accepted_conditions_at "atrybut w ten sposób mogę łatwo utrzymać i pozwolić użytkownikowi ponownie zaakceptować moje warunki, jeśli zmieniają się z jakiegoś powodu – dennis