2012-06-07 3 views
29

쿠폰 회사의 프런트 엔드 사이트를 개발 중이며 사용자가 전화 번호와 $$을 입력하기 만하면되는 페이지가 있습니다. Javascript로 제작 된 재미있는 온 스크린 키보드가 사용하기 쉽고 빠릅니다. 그러나 사용자가 초점을 맞추고 해당 필드에 텍스트/숫자를 입력 할 때 소프트 키보드가 터지는 것을 막을 수있는 솔루션을 찾고 있습니다.HTML 모바일 - 숨길 소프트 키보드 사용

HTML5가 등장한 "전화 번호/전화/이메일"유형 속성에 대해 알고 있습니다. 그러나 미친 소리가 날 위험이 있으므로 실제로 화면상의 키보드를 사용하고 싶습니다.

참고 :이 웹 사이트는 주로 태블릿을 대상으로합니다.

감사합니다.

+1

이것은 매우 미친 사항입니다. 표준 입력 필드를 사용하는 경우 표준 입력 방법을 사용하십시오. – egrunin

+7

그럼에도 불구하고 화면 키보드를 사용하면 많은 이점을 누릴 수 있습니다. 게다가 재미 있고 사용하기 쉽습니다. 잠재 고객의 요구 사항, 두 번째 안전성, 세 번째 화면 부동산을 자세히 타겟팅 할 수 있도록 맞춤 설정이 가능합니다.;-) – crodica

+0

아, 프론트 엔드 * 사이트 *를 프론트 엔드 * 앱 *으로 오해 한 것 같습니다. 웹 사이트에서 사용자의 기대에 더 많은 여지가 있습니다. – egrunin

답변

34

소프트 키보드는 OS의 일부이기 때문에 더 이상 숨길 수 없으며 iOS에서도 키보드에서 요소가 포커스를 잃어 버리는 것을 숨길 수 있습니다. 당신이 다음 blur()onFocus 입력에 속성 등을 사용하는 경우

그러나, 텍스트 입력 즉시, 키보드 자체 숨길되고 onFocus 이벤트는 지난 초점을 맞추고 된 텍스트 입력을 정의하는 변수를 설정할 수 있습니다.

그런 다음 키 누르기를 시뮬레이션하는 대신 마지막으로 포커스가있는 (변수를 사용하여 확인) 텍스트 입력 만 변경하도록 페이지 키보드를 변경하십시오.

+0

Scott 감사합니다. 화면상의 키패드없이 일반적인 html 형식으로 테스트했을 때 여러분의 제안은 완벽하게 작동했습니다. 내가 구현하고있는 jquery 모바일이나 내가 사용하고있는 키보드 객체가 아직 포커스를 찾지 못했다고 (포커스는 라이브러리의 어딘가에 네임 스페이스에 위치한다) 보인다. 당분간은 우리 고객이이 아이디어를 좋아하지 만, 소프트 키보드가 계속 터져 나갔다는 사실은 꺼져서이 기능을 버리고 있습니다. :( 관심이 있다면 관심있는 사람은 여기 키보드 라이브러리 https://github.com/Mottie/Keyboard – crodica

+4

투명 한 div를 넣으면 어떻게됩니까? '

Text:
'. 부모 div의 상대적인 (절대적인) 위치 지정은 절대적으로 위치하는 자식을 부모에 상대적으로 만듭니다. –

36

Scott S의 답변이 완벽하게 작동했습니다.

모바일 용 웹 기반 전화 다이얼 패드를 코딩하고 있었고 사용자가 키패드 (테이블의 td 스팬 요소로 구성된 숫자)를 누를 때마다 소프트 키 보드가 나타납니다. 또한 사용자가 전화를 거는 번호의 입력 상자를 사용할 수 없기를 바랍니다. 이것은 실제로 1 발의 두 문제를 모두 해결했습니다. 다음을 사용 하였다 : 더 리더/수색자를 들어

<input type="text" id="phone-number" onfocus="blur();" /> 
+1

실제로이 대답은 저를 위해 더 잘 작동합니다. @ 스콧 대답에서, 그의 대답에 대한 무례한 것 .Html 입력 된 진술서와 $ (문서) .ready() 사이의 경과 시간은 키보드를 허용하지만, onfocus = blur(); 더 빨리, 적어도 내 마음 속에 키보드가 발사되는 것을 막았습니다. – HumbleBeginnings

10

: Rene Pot으로

this topic에 지적,

readonly="true"하기 위해 입력 필드를 설정하면 아무 것도 입력 사람을 방지한다 하지만 여전히 클릭 이벤트를 시작할 수 있습니다.

이 방법을 사용하면 "소프트"키보드가 나타나지 않고 클릭 이벤트를 시작하거나 온 스크린 키보드로 입력 내용을 채울 수 있습니다.

이 솔루션은 일반적으로 이미 컨트롤을 구현하는 날짜 - 시간 선택기와도 잘 작동합니다.

0

예제 최대 길이를 채우고 난 후 필드가 흐릿 해집니다. 필드가 두 개 이상일 경우 필드를 추가하면됩니다. '//'

var MaxLength = 8; 
    $(document).ready(function() { 
     $('#MyTB').keyup(function() { 
      if ($(this).val().length >= MaxLength) { 
       $('#MyTB').blur(); 
      // $('#MyTB2').focus(); 
     } 
      }); });