JQuery .val () 함수의 JavaScript. Value가 잘못된 값을 반환하지만 모바일 장치에서만

StackOverflow https://stackoverflow.com//questions/9687511

  •  13-12-2019
  •  | 
  •  

문제

나는이 문제에 대해 내 머리카락을 찢어 버리고 있습니다.다음과 같이 보이는 JavaScript 코드가 있습니다.

<script type=text/javascript>
function readVals(){
  val1 = $('#select1').val()
  val2 = $('#select2').val()
  val3 = etc.
}
</script>

<select id='select1'>
 <option value='val1'>val1</option>
 <option value='val2'>val2</option>
</select>
<select id='select2'>
 <option...
.

데스크탑에서 실행될 때 Firefox, Chrome, Safari 및 Mac, Ubuntu 및 Windows에서 실행할 때 Readvals 메소드가 잘 작동합니다.그러나 모바일 브라우저에 관계없이 Android 및 iPhone에서 $ ( '-select2'). val () 항상 0을 반환합니다.

다음과 같은 다른 테스트 기능을 구성하는 바이 기이는 무엇입니까?
function getVal2(){
  alert($('#select2').val())
}
.

getVal2()는 Page의 readVals()에서 <head> 앞에 선언되며 모바일 장치에서도 올바른 값을 경고합니다.그래서 나는 getVal2()를 실행하고 올바른 값을 볼 수 있습니다.그런 다음 즉시 readVals()를 실행하고 잘못된 값을 가져 오지만 val2 및 모바일 장치에서만 모바일 브라우저에서만 사용할 수 있습니다.

아이디어가 있습니까?

도움이 되었습니까?

해결책

OMG, 방금 문제가 무엇인지 깨달았습니다.var를 로컬로 만들 수있는 즉시 :

var val2 = ...
.

문제는 사라졌지만이 문제가 모바일 장치에만 있었는지 나에게 일어났습니다. 나는 질문을하기 위해 코드를 단순화하고 단축했지만 변수의 실제 이름은 orientation였습니다.장치가 어떻게 회전하는지 설명하기 위해 모바일 장치에서 사용됩니다.이는 모바일 장치에서 들어오는 값이 0 및 90 (각도 에서처럼) 이유를 설명합니다.어리석은 바보 같다.잘 알아내는 데는 3 일이 걸렸습니다.시간을 낭비해서 죄송합니다.다음에 실제 코드를 게시 할 것입니다.

다른 팁

페이지가 렌더링 된 후에 만 PageNit 이벤트를 사용하여 기능을 호출 해보셨습니까?

$(document).live( 'pageinit',function(event){
    readVals()
});
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top