2014-05-13 4 views
0

현재 아파치 코드바와 HTML5를 사용하여 Android 및 데스크톱 기기를 대상으로하는 애플리케이션을 개발 중입니다.숫자 키보드가 기본값이지만 문자 허용

수치 키보드를 팝업으로 표시하려면 input type="number"을 사용했는데 정상적으로 작동합니다.

그러나 입력 필드는 strings도 허용해야합니다. type=number의 현재 기능은 ui가 문자열을 입력 할 수있는 것처럼 보이지만 입력이 유효하지 않은 경우 (예 : 숫자가 아닌 경우) 요소의 value 속성이 변경되지 않습니다.

모바일 장치에서 숫자 키보드를 가져 오는 방법은 있지만 텍스트를 입력 할 수 있습니까?

나의 초기 시도는 keydown 이벤트를 캡처하고 this.value 속성을 수동으로 설정하는 것으로 구성됩니다. 나는 jQuerys .val()을 사용하여 이것을 시도했으며 물론 더 많은 'native'접근 인 element.val += char을 사용했다. 어느 것도 작동하지 않습니다. UI가 업데이트되었지만 변경 내용이 모델에 반영되지 않았습니다.

이를 달성하기 위해 노력하고 다음 사람을 위해 편집

.

1) HTML 솔루션.

@LuudJacobs는 아래 주석에 언급했듯이; 현재 유형 속성 정의를 제외하고 어떤 키보드가 표시되는지는 결정할 방법이 없습니다. 일부 장치에는 알파벳 키보드로 돌아 가기위한 단추가 있지만 모든 장치에 해당하는 것은 아닙니다. 그리고 안정적으로 사용할 수 없습니다.

2) phonegap/cordova 플러그인 작성 중.

마음대로 키보드를 표시하거나 숨길 수있는 플러그인을 작성할 수 있습니다. 그러나, 내가 발견 할 수있는 한, 현재 기호 키보드로 기본 설정하도록 프로그래밍 방식으로 지시하는 방법은 없습니다. 따라서 달성 된 기능은 HTML에서 type=numbertype=text을 사용하는 것과 유사합니다. 이 접근 방식의 또 다른 문제점은 안드로이드 장치 용 키보드의 다양성입니다. 사용자가 직접 키보드를 설치할 수 있습니다. 따라서 키보드의 기능을 알 수 없습니다. 한 기기에서 작동하는 기기는 다음 기기에서 작동하지 않을 수 있습니다.

3) JS/HTML/캔버스 용액 마지막

... 실현 가능한 솔루션을 제공한다. this walkthrough을 살펴 보는 것이 좋습니다. html과 js를 사용하여 키보드를 만드는 쉬운 방법을 보여줍니다. 또 다른 옵션은 캔버스를 사용하고 직접 키보드를 그리는 것이지만,이 방법이 오류가 발생하기 쉽고 어렵다고 생각합니다.

답변

0

HTML5 spec에서 설명했듯이 이 아닌에는 input type="number"에 유효한 수레가 있어야합니다. 그래서 당신은 할 수 없습니다. 부작용 : 숫자 키보드 만 사용하는 경우 사용자가 텍스트를 입력하는 방법은 무엇입니까?

+0

'type = number'를 사용하는 것은 꼭 필요한 것은 아니며 원하는 기능은 숫자/기호가 기본값 인 키보드 팝업입니다. type 속성이 number로 설정되어 있어도 내 타블렛에서 일반 키보드로 변경할 수 있습니다. 비록 이것이 (해야합니까 ??) 다른 장치에서 작동하지 않습니다. – atomman

+0

모든 기기에서 작동하는 것에 의존 할 수 있다고 생각하지 않습니다. – LuudJacobs

+0

난 그냥 내 휴대 전화에서 그것을 테스트하고, 그것을 작동하지 않았다. 그래서'type = number'는이 시점에서 꽤 많이 벗어났습니다. 나는 숫자와 글자가 모두 필요하지만 숫자/기호 키보드를 기본값으로 표시하는 것을 선호합니다. – atomman

관련 문제