2012-04-03 1 views
0

좋은 저녁의 값을 설정합니다 "제출"레일, Formtastic : 세, 버튼, 각각의 특정 속성을 다르게

나는 하나의 필드 (이름), 사용자 입력과 양식을 설정하고 싶습니다 이름을 입력 한 다음 세 개의 버튼 중 하나를 선택합니다.

이러한 각 단추는 동시에 특정 특성 값을 설정하고 양식을 제출해야합니다.

Name : _________ 
"Good" "Sad" "Tired" 

이 사용자의 이름을 절약 할 다음 예/아니오/어쩌면 "users_feeling"속성에 :

인위적인 예 ("XXXX"는 버튼입니다). 나는 사용자 감정 속성을위한 라디오 박스를 갖고 싶지 않고 별도의 제출 버튼을 갖고 싶지 않다.

도움을 주시면 감사하겠습니다.

+0

이것은 formtastic을 사용하지 않는 것이 더 쉬운 상황 일 수 있습니다. –

+0

나는 이것을 게시 한 지 5 분 후에 실제로 생각하고 있었다. 나는 여전히 솔직히 초보자이다. 각 버튼에 어떤 html 요소를 사용해야 할까? 내 스타일 (부트 스트랩 등)이 그대로 유지되도록

+0

답변이 도움이되기를 바랍니다. 오히려 일반적이지만 뭔가 사용하는 데 사용할 수 있기를 바랍니다. –

답변

3

일반적인 방법에는 두 가지가 있습니다.

IMHO 더 나은 것은 숨겨진 필드로 설정할 속성을 추가 한 다음 버튼의 일부 데이터 속성으로 설정하는 자바 스크립트를 작성하는 것입니다. this 식으로 뭔가 :

$('.my_form button').click -> 
    $('#my_hidden_field').val ($ @).data 'attribute-name' 
    $('.my_form')[0].submit() 

다른 하나는 각각의 버튼을 전달합니다 제출하는 것입니다 자사 양식을 제출 매개 변수로 value. 다른 값처럼 레일스 컨트롤러에서이를 감지 할 수 있습니다. 이 HTML이있는 경우 그래서 :

<input type=submit name=feeling value=Good /> 
<input type=submit name=feeling value=Sad /> 
<input type=submit name=feeling value=Tired /> 

그런 다음 컨트롤러에 params[:feeling]가 보유해야 버튼의 값은 클릭. 왜 내가이 솔루션을 좋아하지 않는 이유는 value 문자열이 컨트롤러에 뷰를 연결하는 사용자에게 표시되는 내용이기 때문입니다. 앞으로 귀하의 앱을 현지화하려는 경우 이것이 당신을 물으실 것입니다.

+0

감사합니다 !! 죄송합니다. 기본입니다. – Brandon

+0

하나의 작은 수정 : 각 버튼마다 다른 이름을 사용하고 값이 존재하는지 테스트하십시오. 클릭 한 버튼 만 서버로 전송됩니다. – fabspro