문제

Mobile Safari는 호출 된 입력 요소의 속성을 지원합니다 autocapitalize [여기에 문서화되었습니다], 'OFF'로 설정하면 iPhone이 해당 필드로 텍스트 입력을 대문자를 대문자로 설정하면 URL 또는 이메일 필드에 유용합니다.

<input type="text" class="email" autocapitalize="off" />

그러나이 속성은 HTML 5 (또는 내가 아는 한 다른 사양)에서 유효하지 않으므로 HTML에 포함 시키면 유효하지 않은 HTML 페이지가 생성됩니다. 내가하고 싶은 것은이 속성을 특정 필드 onload에 추가 할 수 있습니다. 다음과 같은 JavaScript :

$(document).ready(function(){
  jQuery('input.email, input.url').attr('autocapitalize', 'off');
});

Firefox 및 Desktop Safari의 올바른 속성을 추가하지만 Mobile Safari에서는 아무것도하지 않는 것 같습니다.

도움이 되었습니까?

해결책

이것은 iPhone OS 3.0에서 고정되어야합니다. 어떤 버전의 iPhone OS를 시도하고 있습니까?

Email: <input id="email" type="text"><br>
URL: <input id="url" type="text"><br>
<script>
//document.getElementById("email").autocapitalize = 'off';
//document.getElementById("url").autocapitalize = 'on';
document.getElementById("email").setAttribute('autocapitalize', 'off');
document.getElementById("url").setAttribute('autocapitalize', 'on');
alert(document.body.innerHTML);
</script>

다른 팁

참고 사항. "이메일"키보드를 자동으로 가져 오기 위해 "이메일"으로 입력 유형을 지정하여 iOS의 사용자 경험을 훨씬 더 향상시킬 수 있습니다 (이메일 입력을위한 약간 더 나은 문자).

<input type="email" class="email" autocapitalize="off" />

다음은 문서입니다 입력 유형이 iOS 키보드를 제어 할 수있는 방법.

스크립트를 통해 추가하거나 마크 업에 추가하면 유효하지 않습니다. 스크립트를 통해 추가하면 유효성 검사기가 알 수 없습니다.

마크 업에 넣고 옆에 댓글을 달아주세요. <!-- the "autocapitalize" attribute is an Apple proprietary extension for the iPhone to change its IME behaviour -->, 이렇게하면 유효성 검사기에서 코드를 보는 사람들은 무슨 일이 일어나는지 알게됩니다.

유용한 기능이라면 엄격한 검증과 사용자 경험을 선택하면됩니다. 개인적으로, 나는 어느 날 UX를 선택합니다.

그래서 ddkilzer가 제안한 것처럼 jQuery가 할 수는 없지만 일반적인 JavaScript를 할 수 없었습니다. 따라서 특정 클래스가있는 모든 입력에 AutoCapitalize = 'Off'옵션을 적용하기 위해이 기능을 구성했습니다.

$(document).ready(function(){
  // disable autocapitalize on .url, .email fields
  unautocapitalize('url');
  unautocapitalize('email');
});

function unautocapitalize(cssClass){
  var elems = document.getElementsByClassName(cssClass);
  for (var j = 0; j < elems.length; j++){
    elems[j].setAttribute('autocapitalize', 'off');
  }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top