2012-06-22 3 views
5

나는 search inputsubmit button의 기본 form을 가지고 있습니다. 포커스가 input에서 발생하면 키보드가 예상대로 표시됩니다. button을 누르면 양식 제출 이벤트가 발생합니다.이 이벤트에서는 event.preventDefault()으로 전화를 걸어 대신 ajax 호출을합니다. 그러나 키보드의 검색 버튼을 누르면 키보드가 숨겨져 제출 이벤트가 발생하지 않습니다.모바일 사파리 키보드 양식 제출

키보드 검색을 누르면 양식이 제출되지 않는 이유는 무엇입니까? 키보드 검색 버튼을 통해이 이벤트가 발생하도록하려면 어떻게해야합니까?

감사합니다.

+0

당신이 코드를 게시 할 수 제외한 모든 호출을 반환? 이벤트를 청취 할 필요는 없습니다. –

+0

실제로'ajax'를 사용하고 싶다면 이벤트를 청취해야합니다. – Trevor

+0

Oh gotcha, 저는 보통 양식을 사용하여 아약스를 통해 데이터를 제출합니다. 양식 데이터를 json으로 직렬화하여 직접 보낼 수 있습니다. 모델의 모든 입력을 직접 와이어 링해야하는 것보다 훨씬 쉽습니다. –

답변

5

키보드 검색 단추는 키 누르기 이벤트에 바인딩되어야하며 keycode13입니다.

는 기본적으로 keypress 이벤트를 수신하고 e.which === 13

$('input').on('keypress', function (e) { 
    if (e.which !== 13) { 
     return; 
    } 

    // ajax code 
} 
관련 문제