2012-11-06 5 views
1

를 업데이트 할 수없는 input[type="number"] 내가 값을 통해 업데이트 할 때모바일 입력 그래서이 프로그램

을 (아이폰 OS (아이폰에서 올바른 키패드를 불러옵니다 바람직 pattern="[0-9]*" 속성으로) 아이 패드에서 작동하지 않습니다) 프로그래밍 방식으로 iOS를 스크류하면 안드로이드는 완전히 작동하지 않습니다. http://jsfiddle.net/9QUPe/

기본적으로, 키패드 (iOS에서 적어도) 당신에게 소수점 자리를주지 않는, 그래서 사용자가 추가 할 :

여기 작은 테스트 케이스를 가지고있다.

이 이

작품 완벽 크롬 (Win7에)에 을

$('input').on('keyup', function(){ 
    var val = this.value.replace('.',''); 
    if(val.length <= 2){ 
     this.value = '.'+val 
    }else{ 
     this.value = val.slice(0,-2) +'.'+ val.slice(-2); 
    } 
}); 
- 그러나 아이폰 OS는 0을 받아 (데이터를 문자열로 유지 되더라도)하지 않고 안드로이드는 pattern 속성이 존재하는 것 모두 단지 빈 입력 (여부 (이 테스트 케이스의 경우 Android의 http://jsfiddle.net/9QUPe/1 참조).

이 방법을 사용하는 방법에 대한 아이디어가 있으십니까?

답변

0

나는 비슷한 키보드를 제공하며, 아이폰 OS/안드로이드에서 제대로 작동 input type="tel"으로 input type="number"을 대체 할 수 냈어요 -하지만 추가 문자 제공, - ...

() N + * # 그래서 내가 생각해 낸 해결책은 type="tel"을 사용하고 여분의 문자를 제거하는 것입니다.

$('input').on('keyup change', function() { 
    var val = this.value; 
    val = val.replace(/\D/g, ''); 

    if (val.length <= 2) { 
     this.value = '.' + val; 
    } else { 
     this.value = val.slice(0, -2) + '.' + val.slice(-2); 
    } 
});​ 

( http://jsfiddle.net/9QUPe/9/ 참조)