2015-01-26 4 views
0

안녕하세요. 숫자를 허용하는 기능이 있지만 그 중 몇 가지 문제가 있습니다.입력란에 숫자 허용 안 함

1) 슬래시 즉 '/'를 허용하고 싶습니다.

2) 첫 번째 입력에서 어떤 이유로 문자를 허용합니다.

그것은 knockout keyup 기능에 묶여있다.

<input id="txtboxToFilter" type="text" placeholder="dd/mm/yyyy" maxlength="10" data-bind="value: Observable.birthdate(), valueUpdate: 'keyup', event: { keyup: CheckDate}" /> 

이 기능을 호출합니다.

function CheckDate(){ 
    document.getElementById('txtboxToFilter').onkeydown = function(evt) { 
     var charCode = (evt.which) ? evt.which : evt.keyCode; 
     if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) 
      return false; 

     return true; 

    } 

    } 

신체의 도움이 필요하십니까?

+0

이 기능을 키 업에 바인딩 한 다음 다시 키 다운으로 바인딩 했습니까? – adeneo

+0

웬일인지 그것을하지 않고 일을 didnt한다 –

+1

당신의 지위와 모순되는 것처럼 보인다. 숫자/숫자가 허용되지 않으면 날짜 입력은 확실히 유용하지 않습니다. (또는 "숫자"로 [코드 포인트] (https://en.wikipedia.org/wiki/Code_point)를 언급하고 있습니까?) –

답변

0

당신은 확실히 정규식을 사용할 수 있습니다

document.getElementById('txtboxToFilter').onblur= function(e) { 
    alert(validateDate(document.getElementById('txtboxToFilter').value)); 
    } 


function validateDate(dob) { 
    var re = /^(?:(?:31(\/)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/; 
    return re.test(dob); 
} 

바이올린 : http://jsfiddle.net/exe0m3ek/

여기

하는 것은 물론 윤년을 지원합니다 :)

^(?:(?:31(\/)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$ 

JS 코드를 하나입니다

참고 : I ha hav e가 이벤트를 키패드에서 블러로 변경했습니다. 키패드에만 만 있으면 ... 그에 따라 변경하십시오.

+0

위의 코드를 어떻게 적용합니까? –

+0

우리는 01/01/1600 전에 태어날 수 없습니다 : D – flks

+0

DOB의 유효성을 검사 할 것이라고 말하지 않았습니다 .... 나는 Date : – Vijay

관련 문제