2013-03-09 3 views
1

양식의 생년월일을 확인하기 위해 내장 HTML5 확인 방법을 사용하고 있습니다.HTML5 setCustomValidation 문제 바인딩 해제

형태는 세 가지 선택 목록 요소, user_dob_date user_dob_month user_dob_year 사용자가 지금 유효한 옵션

을 선택하는대로

이 모든 세 가지 요소가 확인을 위해 "필요한"으로 넣어왔다있다 사용자가 세 가지 옵션을 모두 선택하고 HTML5 유효성 검사 옵션을 잘 선택하면 윤년의 날짜를 확인하고 사용자가 1998 년 31 월 31 일을 선택하지 않았는지 확인하려고합니다.

$('#form-signup-next').submit(function(){      
    if($('#user_dob_month').val()=='2' && $('#user_dob_date').val()>29){ 
     var obj=$('#user_dob_date')[0]; 
     alert($('#user_dob_month').val()); 
     obj.setCustomValidity('Invalid Date!');   
    }else{ 
     var obj=$('#user_dob_date')[0]; 
     obj.setCustomValidity(''); 
    } 
    return false; 
    }); 

-> 제출을 클릭하면 맞춤 메시지가 표시되지 않습니다. 버튼을 두 번 클릭하면됩니다. 처음 클릭하면 matbe가 msg를 설정하지만 두 번째 클릭하면 오류가 표시됩니다.

-> 맞춤 메시지를 잘못 선택하여 표시 한 후 날짜가 고정되어 양식을 제출하려고 시도하면 여전히 오류 :(

사전 :이. 감사에서 저를 도와주세요

답변

1
setCustomValidity 값이 설정되면 그것을하지 않는 한 때까지 양식을 제출하는 것을 허용하지 않기 때문에 당신은 그의 양식의 제출하나요 안

유효성 검증 오류 값이 명확 해졌으며 코드에서 제출시 오류 값을 지우는 것이 문제점입니다. 따라서 다음 실행에서 값을 수정하더라도 유효성 검사 오류가 발생하는 이유입니다. 자세한 내용은

당신이

$('#user_dob_date,#user_dob_month').on('change',function(){ 
    if($('#user_dob_month').val()=='2' && $('#user_dob_date').val()>29){ 
    $('#user_dob_date')[0].setCustomValidity('Invalid Date!'); 
    } 
    else{ 
    $('#user_dob_date')[0].setCustomValidity(''); 
    } 
    }); 

을 값 변경 이벤트를 드롭 다운에 오류 메시지를 설정 & 확인이 way..by에서이 작업을 수행 할 수 있습니다 그래서 지금 CURRENT IMPLEMENTATION ISSUES AND LIMITATIONS(specially Problem 3)

확인이 링크를 확인하시기 바랍니다 내가 이것을 확인한 & 괜찮습니다.

이제 사용자가 잘못된 조합 &을 선택하면 오류 메시지가 표시됩니다.

http://jsbin.com/aqicim/1

+0

감사 톤 Peeyush에서 시도 !!!! 이것은 매력처럼 작동합니다 :) –