2013-03-20 84 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