2012-04-26 119 views
3

我有这样的功能:为什么页面刷新触发.keyup()?

$('.PhoneNumbers').on('keyup focusout', $('input:text[name^="Customers[0].PhoneNumbers"]'), function (e) { 
    phoneRadioBtns(e); 
}); 

的问题是,当我刷新页面它触发keyup事件,并执行它的函数,这是不理想的结果。有谁知道如何解决这个问题?

+0

里面是一个验证码$ document).ready()块?你确定这是密码,而不是专注吗? – 2012-04-26 15:18:26

+0

是的,我敢肯定它的关键BC,当我只使用聚焦它不刷新页面刷新(页面加载时)。但是我希望结果也发生在keyup上,而不仅仅是聚焦。 。 。 – Tanya 2012-04-26 15:22:28

+0

不,它不在文档中,它在一个函数中。 – Tanya 2012-04-26 15:23:42

回答

1

只有当您在输入内按F5时才会发生这种情况吗?

(这是我设法复制的唯一办法:试着在这里http://jsfiddle.net/ybuTv/

解决它是从事件排除F5键的方法之一:http://jsfiddle.net/ybuTv/1/

$(function() { 
    $('.PhoneNumbers').on('keyup focusout', $('input:text[name^="Customers[0].PhoneNumbers"]'), function(e) { 
     if(e.which!=116){ 
      phoneRadioBtns(e); 
     } 
    }); 

}); 
+0

我只是试了一下F5里面的输入与外部(在我的应用程序中)并没有关系。我猜它不是触发它的刷新,它触发键盘的页面加载。 – Tanya 2012-04-26 15:27:33

+0

你有没有尝试过不使用键盘,只是鼠标,并得到相同的结果?你在代码xxx.keyup()或xxx.focusout() – 2012-04-26 15:29:40

+0

中有任何地方,当我点击浏览器上的刷新符号时也会发生这种情况。 – Tanya 2012-04-26 15:31:13