我有一个搜索文本框和一个按钮,当使用鼠标单击时,文本框文本在服务器端代码中用于过滤结果...在场景后面这是使用Ajax完成的,这很好。
我想创建一个clientdie按键事件,因此当用户在框中按Enter键时,会单击搜索按钮。
当我使用('#somebutton')。click()(或等效('#somebutton')。触发(“点击”)),在文本框按键事件中,服务器端代码运行但是采用旧的文本框搜索值...这是一个正在发生的事情的例子。
[使用鼠标]
[使用Keypress事件和触发点击方法]
这是我在$(document).ready event。
中运行的客户端代码 $('.txtSearch').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
$('.btnSearch').click();
}
});
任何人都可以解释为什么通过JQuery的click事件不会获取当前的搜索文本框值,但实际上用鼠标单击该按钮会是什么?
...谢谢
此外...此搜索框是自定义构建的服务器控件,因此每次在Control.CreateChildControls方法中都会在代码中创建文本框和按钮等组件。
我唯一的猜测是
点击搜索按钮会在生命周期的后期以某种方式触发服务器端点击事件,而不是使用JQuery.click()方法......(不太可能是这样)或
有关视图状态数据的信息。也许用于触发click事件的JQuery方法会导致视图状态数据在我需要之后与服务器控件绑定回来。