2013-03-20 130 views
0

我希望當我輸入一個字符的文本框,並重裝之後重新加載頁面,採取光標回到textbox.它(瀏覽器),當我從文本中刪除字符不應該重裝。火災事件字符的jQuery

我想這一點,但它不工作

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

應該怎樣做呢?

+0

看看你是否按下了一些關鍵頁面重新加載,然後你如何能夠刪除該字符。 – Jai 2013-03-20 19:16:40

回答

2

$('textbox').focus();$(document).ready,當重新加載頁面將被聚焦。

那麼你的按鍵事件改成這樣: 它重新加載頁面,只要輸入的按鍵不是backspacedel

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

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

仍然重新加載,當我回退或刪除,即使我改變&&到||。當我提醒(e.keyCode);時,我在控制檯中得到了未定義的內容。不是8或46 – Alexxio 2013-03-20 19:58:59

+1

它適合我。見:http://jsfiddle.net/LaHN4/1/ – Greg 2013-03-20 20:02:29

+0

哇!它的工作現在!非常感謝。我想如果我想排除其他鍵,我會在它們之間添加'&&'的代碼? – Alexxio 2013-03-20 21:04:44

1

你的策略有一個致命的錯誤

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

使用keyup函數來檢查鍵入的字符。檢查keycode 8和46是否爲刪除和退格,如果沒有重新加載...你必須在重新加載之前將輸入聚焦..因爲重載後的代碼將不會被調用....

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

}); 
+0

當我點擊退格或刪除時,它仍在重新加載。當我把戒備放在這裏...功能(e){警報(e.keycode);如果(e.keycode!= 8 || ....,它會在控制檯中提示未定義。可能是什麼問題? – Alexxio 2013-03-20 19:55:06

+1

問題是他在if語句中使用「||」(或)而不是「&& 「(and)。See other answer。 – Greg 2013-03-20 19:56:24

+2

@AlexKasina是的..我更新了我的答案應該是&& ...試試吧 – bipen 2013-03-20 20:02:39