2014-06-20 2 views
0

여러 그룹에서 하나 개의 라디오 버튼, 이제 가정 해 봅시다 :jQuery를 검증 : 나는 라디오 버튼의 세 세트 양식을 가지고

<input type="radio" name="answer_option1" value="1" id="ans_options1" /> 
<input type="radio" name="answer_option1" value="2" id="ans_options2" /> 
<input type="radio" name="answer_option1" value="3" id="ans_options3" /> 
<input type="radio" name="answer_option1" value="4" id="ans_options4" /> 

<input type="radio" name="answer_option2" value="5" id="ans_options5" /> 
<input type="radio" name="answer_option2" value="6" id="ans_options6" /> 
<input type="radio" name="answer_option2" value="7" id="ans_options7" /> 
<input type="radio" name="answer_option2" value="8" id="ans_options8" /> 

<input type="radio" name="answer_option3" value="9" id="ans_options9" /> 
<input type="radio" name="answer_option3" value="10" id="ans_options10" /> 
<input type="radio" name="answer_option3" value="11" id="ans_options11" /> 
<input type="radio" name="answer_option3" value="12" id="ans_options12" /> 

양식합니다 (jqueryvalidation.org 의미에서) 확인을 통과해야한다 이 12 개의 무선 중 하나가 선택됩니다. 나는 모든 종류의 그룹이 아닌 개별 그룹에 대해서만 한 종류 또는 다른 클래스의 "요구하는"클래스를 매달리는 일반적인 방법을 만들 수있었습니다. 그룹 1의 라디오를 선택하면 선택 항목 누락에 대한 불만이 이어질 수있었습니다 그룹 2와 3에서 나는 또한 require_from_group으로 달아났다. 그러나 그것은 훨씬 좋아 보이지 않는다. 이견있는 사람? 감사!

+0

_ _ 수단 왜 더 나은를 보이지 않았다 "'require_from_group'와 dallied"무엇인지 설명해주십시오. 'require_from_group'은 당신이 요청한 것과 정확히 일치합니다. – Sparky

+0

예제를 구성 할 수있는 충분한 코드를 보여 주어야하며 잘못된 부분을 볼 수 있습니다. '.validate()'에 대한 호출은 어디에 있습니까? – Sparky

+0

그건 그렇고, 마지막 버튼 그룹은 두 번째 그룹과 같은 이름입니다. – Sparky

답변

1

견적 OP :

가 ".이 12 개 라디오 중 하나를 선택하면 양식이 유효성 검사를 통과해야 ..."

"... 나는 또한 함께 dallied require_from_group하지만 훨씬 좋지는 않습니다. "

은 나를 위해 잘 작동하지만 잘못된 코드 위치를 알 수있는 충분한 코드를 표시하지 않았습니다. the additional-methods.js file을 반드시 포함하십시오.

제 3의 버튼 그룹의 이름을 answer_option3으로 바꾸었지만 내 데모에서는 라디오 버튼에 대한 HTML 마크 업과 함께 다음과 같은 jQuery를 사용합니다.

$(document).ready(function() { 

    $('#myform').validate({ 
     rules: { 
      answer_option1: { 
       require_from_group: [1, '[name^="answer_option"]'] 
      }, 
      answer_option2: { 
       require_from_group: [1, '[name^="answer_option"]'] 
      }, 
      answer_option3: { 
       require_from_group: [1, '[name^="answer_option"]'] 
      } 
     }, 
     groups: { // groups all messages into one 
      arbitraryName: 'answer_option1 answer_option2 answer_option3' 
     } 
    }); 

}); 

DEMO : http://jsfiddle.net/qf2Pg/1/

하나에 여러 필드에 대한 간단 그룹 메시지 groups 옵션을 선택합니다. 일반적으로 세 개의 필드 중 하나를 충족시킬 필요가있을 때만 세 개의 필드에서 동시에 메시지를받는이 상황에 적합합니다.


대안는 :

.rules('add') 방법은 위의 반복적 인 규칙 선언을 완화하는 데 활용 될 수있다.

$('[name^="answer_option"]').each(function() { 
    $(this).rules('add', { 
     require_from_group: [1, '[name^="answer_option"]'] 
    }); 
}); 

DEMO 2 : http://jsfiddle.net/qf2Pg/2/

관련 문제