2013-03-20 2 views
0

텍스트 상자에 문자를 입력하고 다시로드 한 후 textbox.으로 커서를 가져 가면 페이지를 다시로드하려고합니다. 텍스트 상자에서 문자를 삭제할 때 It (브라우저)가 다시로드되지 않아야합니다. .문자 jquery를 추가 할 때 발생하는 화재 이벤트

나는이려고하지만 이

$('#id_BasePairs').bind('input', function() { 
location.reload(); 
$('textbox').focus(); 
}); 

이 어떻게 이루어져야

작동하지 않는 이유는 무엇입니까?

+0

일부 키 페이지를 누른 다음 캐릭터를 삭제하는 방법을 확인하십시오. – Jai

답변

2

$('textbox').focus();$(document).ready에 넣으면 페이지가 다시로드 될 때 초점이 맞춰집니다.

그런 다음이에 키 프레스 이벤트를 변경 : 이 페이지를 다시로드 한 입력 키를 backspace 또는 del 아니었다으로

$(document).ready(function() { 
    $('#textbox').focus(); 

    $('#textbox').keyup(function (e) { 
     if (e.keyCode != 8 && e.keyCode != 46) { 
      location.reload(); 
     } 
    }); 
}); 
+1

여전히 백 스페이스를 누를 때 다시로드되거나 &&를 ||로 변경하더라도 삭제됩니다. 경고 할 때 콘솔에서 정의되지 않습니다 (e.keyCode); 8 또는 46 아닙니다. – Alexxio

+1

그것은 저에게 잘 작동합니다. 참조 : http://jsfiddle.net/LaHN4/1/ – Greg

+0

와우! 그 지금 일하고있어 라! 고마워. 나는 다른 키를 제외 시키길 원한다면 그들 사이에 '&&'기호를 추가 할 것인가? – Alexxio

1

당신의 전략은 치명적인 오류

location.reload(); 
// all the code from now on is irrelevant as the page reloads. 
... 
... 
2

사용할 수있다 keyup 함수를 사용하여 입력 된 문자를 확인합니다 .. 키 코드 8과 46을 확인하여 삭제 및 백 스페이스를 수행하고 다시로드하지 않은 경우 ... 다시로드하기 전에 입력에 집중해야합니다. 다시로드 한 후 코드가 호출되지 않기 때문에 ....

$(function(){ 
$('#inputId').focus(); 
$('#inputId').keyup(function(e){ 
    if(e.keyCode != 8 && e.keyCode != 46) 
    { 
     location.reload(); 
    } 
}); 

}); 
+0

내가 백 스페이스를 치거나 삭제할 때 아직 다시로드 중입니다. 여기에 경고를 할 때 ... function (e) {alert (e.keycode); if (e.keycode! = 8 || ....) 콘솔에 정의되지 않은 것을 알려줍니다. 무엇이 문제가 될 수 있습니까? – Alexxio

+1

문제는 "&&"대신 "||"(or)를 if 문에서 사용한다는 것입니다. "(및). 다른 대답을 참조하십시오. – Greg

+2

@AlexKasina 예 .. && ... 시도해야합니다 내 대답 업데이트했습니다. – bipen

관련 문제