2013-01-16 3 views
3

완료 값을 입력하고 Tab 키를 누르면 자동 완성되지만 사용자는 다음 입력 필드로 이동하지 않습니다. 나는이 행동이 잘못되었다고 생각한다. 탭을 사용하면 사용자가 다음 필드로 이동해야합니다. 그러나 왜 이런 식으로 행동하는지에 대한 좋은 이유가 있을까요? 아는 사람 있나요?부트 스트랩 선행 입력 탭은 내가 그렇게처럼 onchange를 이벤트를 부착 한 표준 부트 스트랩 선행 입력 요소와 몇 문제가 발생했습니다

2) jquery onchange 이벤트를 첨부하면 firefox (크롬이나 IE는 제외)에서 두 번 실행됩니다. 왜 이런 일이 일어나는 걸까요? 다음 단락의 단계를 수행하고이 jsfiddle로 테스트 할 수 있습니다. http://jsfiddle.net/e4zDx/4/

첫 번째 입력 필드에 "a"를 입력하고 탭을 누르십시오. 필드가 자동 완성되고 onchange 이벤트가 발생하고 커서가 슬프게 입력 필드 (문제 1 이었음)에 남아 있습니다. 탭을 다시 누르면 커서가 다음 필드로 이동합니다.이 시점에서 firefox (크롬 또는 IE가 아님)는 jsfiddle의 출력 div에서 보여 주듯이 onchange 이벤트를 다시 발생시킵니다.

onchange 이벤트 내에서 현재 값을 캡처하여 data-oldvalue와 같은 요소의 속성에 저장하고 현재 값이 이전 값과 다른 경우 onchange 만 실행할 수 있다는 것을 알고 있습니다. 그러나 내가 정말로 알고 싶은 것은 firefox가 onchange 이벤트를 두 번 트리거하는 반면 chrome과 ie는 그렇지 않다는 것입니다.

내가 윈도우 7이 있고 내가 사용 브라우저 버전은 다음과 같습니다
파이어 폭스 18.0
크롬 23.0.1271.97 m
IE 8 (브라우저 모드 IE8, 문서 모드 IE8 표준)

답변

0

문제 1 : 첫 번째 탭에서 Typeahead를 자동 완성하고 두 번째 탭 커서가 다음 필드로 넘어 가기 때문에 선택 사항을 변경하려는 경우 동일한 필드에서 변경 사항을 적용 할 수 있기 때문에 문제가 있다고 생각하지 않습니다. 나는 Typeahead 완료에 대한 아약스 요청을 트리거하고 양식의 일부 필드를 업데이트했다. 사용자가 선택 항목을 변경하려면 이전 선택 항목을 삭제하고 새로운 항목을 시도 할 수있다. 가치, 그래서 그것은 같은 분야에 커서를 넣는 것 같아요.

2 호 : Chrome 24.0.1 및 firefox 16.0.1에서 Js 바이올린을 시험해 보았습니다. 두 경우 모두 1 번만 발생했지만 Firefox 버전에 문제가있을 수 있습니다.

관련 문제