2013-04-18 1 views
26

2 개의 양식이있는 페이지가 있습니다. 각 양식에는 입력 텍스트 필드가 있습니다.jQuery : keyUp 및 변경 이벤트가 모두 필요합니까?

첫 번째 양식의 입력 텍스트에있는 값은 두 번째 양식의 입력 텍스트에있는 값과 동일해야합니다.

값이 변경되면 다른 입력 텍스트 필드도 해당 값을 수정합니다.

onkeyuponchange 이벤트를 모두 사용해야합니까?

아니요, 사용하려는 것이 맞습니까?

나는 2 개의 게시물 요청을 가지고 있기 때문에이 질문을하고 있는데, 나는 이것이 이유라고 생각한다.

$('input.searchbox').keyup(function(){ 
     $('input.txtfieldsearch').val($('input.searchbox').val()); 
     listViewUpdate(); 
     $('input.txtfieldsearch').trigger("keyup"); 
    }); 

    $('input.txtfieldsearch').keyup(function(){ 
     $('input.searchbox').val($('input.txtfieldsearch').val()); 
     listViewUpdate(); 
    }); 

    $('input.searchbox').change(function(){ 
     $('input.txtfieldsearch').val($('input.searchbox').val()); 
     listViewUpdate(); 
     $('input.txtfieldsearch').trigger("change"); 
    }); 

    $('input.txtfieldsearch').change(function(){ 
     $('input.searchbox').val($('input.txtfieldsearch').val()); 
     listViewUpdate(); 
    }); 
+0

사용 권한은 무엇입니까? –

+0

언제 값을 업데이트 하시겠습니까? 'change'와'keyup'은 서로 다른 이벤트이며, 둘 다 사용할 수 있습니다. – Bergi

+0

'searchbox'에서'listViewUpdate'를 두 번 호출했음을 확인 했습니까? – Bergi

답변

37

$.on() 기능을 사용하고 배수 처리기을 첨부 할 수 있습니다.

$("#element").on('keyup change', function(){ 
    // Your stuff... 
}); 
2

변경 사항에 대응하려면 change을 사용해야합니다.

키 업이 변경 (예 : 시프트)을하지 않고 경우에 따라 키 업 (변경)이없는 경우가 있습니다.

+0

입니다. 이것은'keyup'과'change'를 사용했다면 제가 올바른 방법으로하고 있다는 것을 의미합니까? –

+1

키 업은 거의 변경되지 않습니다. 'change'는 입력 필드를 흐리게 만들 때만 실행됩니다. – Bergi

+1

그들은 다른 일을합니다. 따로 따로 시험해보고 발화시기를 확인하고 필요한 것이 무엇인지 확인해야합니다. 경우에 따라 둘 다 맞을 수도 있습니다. – ColBeseder

11

onkeyup은 대부분 사용자가 키를 눌렀다가 놓으면 발사됩니다. onchange은 사용자가 브라우저의 자동 완성 기능을 사용하는 경우 발생할 수 있습니다. 당신은 단지의 경우, 두 이벤트를 잡으려고 .on() 방법을 사용한다 :

$('input.searchbox').on('keyup change', function(e){ 
    $('input.txtfieldsearch').val($('input.searchbox').val()); 
    listViewUpdate(); 
    $('input.txtfieldsearch').trigger(e.type); 
}); 

$('input.txtfieldsearch').on('keyup change', function(){ 
    $('input.searchbox').val($('input.txtfieldsearch').val()); 
    listViewUpdate(); 
}); 
7

당신은 오래된 브라우저에 대한 지원을 제공 할 필요가 없습니다 경우에만 "입력"이벤트를 사용할 수 있습니다. 입력 요소에서 값이 변경 될 때마다 해고됩니다. 지원되는 브라우저 목록은 다음과 같습니다. https://developer.mozilla.org/en-US/docs/Web/Events/input

관련 문제