2017-03-21 1 views
1

라디오 버튼의 형태로 권한있는 대리인이 있는지 묻는 양식이 있습니다. 사용자가 '예'옵션을 선택하면 담당자에 대한 추가 필드가 표시되고 필수 입력 '대표 이메일'이 표시됩니다.필수 입력란은 요소 표시시에만 필요합니다.

사용자가 예 옵션을 선택했을 때만 필요한 방법이 있습니까? 사용자가 '옵션 없음'을 선택하면이 필수 입력란 값을 계속 찾기 때문에 양식이 제출되지 않습니다.

<form> 

<div class="onBehalfOf"> 
<input type="radio" checked="checked" name="Radio" id="yes" value="Yes"> 
<label for="yes"> Yes</label> 
<input type="radio" name="Radio" id="no" value="No"> 
<label for="no"> No</label> 
</div> 

<div class="authorizedRep"> 
Email: 
<input type="email" required /> 
</div> 

<input type="submit" label="submit" /> 

</form> 

js Fiddle Example

+0

질문에 대한 답을 결코 받아들이지 않는 것 같습니다. 이것은 사람들을 내쫓을 것이고 당신이 대답을 얻지 못할 가능성이 적어집니다. 과거와 미래의 질문에 대한 귀하의 문제를 해결 한 대답을 수락하는 것을 고려해야합니다. 참고로 제출 된 답변의 진드기입니다. – Yoda

답변

2

작은 변화로 당신은 당신이/보여 필드를 숨기 이메일 입력에 required 속성을 전환 할 수 있습니다. 요소에 적절한 emailInput 클래스를 추가하기 만하면됩니다.

$('.onBehalfOf input:radio').change(function() { 
    if ($(this).is(':checked') && $(this).val() == 'No') { 
    if ($('.authorizedRep').hasClass("hide")) { 

    } else { 
     $('.authorizedRep').addClass("hide"); 
     $('.emailInput').removeAttr('required'); 
    } 
    } 

    if ($(this).is(':checked') && $(this).val() == 'Yes') { 
    $('.authorizedRep').removeClass("hide"); 
    $('.emailInput').attr('required'); 
    } 
}); 
+0

나는 실제로 같은 것을 생각하고 있었지만 왜 이런 일이 일어나는지 또는 필요한 속성을 제거하지 않고 양식을 계속 진행할 방법이 있는지에 대한 설명과 같은 것을 찾고있었습니다. 내가 생각한 것을 확인해 주셔서 감사합니다. – Jeremy

+0

양식은 무엇이든지 상관없이 필요한 속성을 구문 분석합니다. 단, 실제로 제거하는 유일한 방법은 의심스러운 것입니다. 양식에서 필수 입력란을 사용 또는 사용 중지하는 모호한 방법이있는 경우 혼란을 겪을 수 있습니다. – Yoda

관련 문제