单击按钮('jquery Object')。click()会在ajax调用中产生不同的结果

时间:2013-11-04 10:32:48

标签: jquery asp.net ajax search custom-server-controls

我有一个搜索文本框和一个按钮,当使用鼠标单击时,文本框文本在服务器端代码中用于过滤结果...在场景后面这是使用Ajax完成的,这很好。

我想创建一个clientdie按键事件,因此当用户在框中按Enter键时,会单击搜索按钮。

当我使用('#somebutton')。click()(或等效('#somebutton')。触发(“点击”)),在文本框按键事件中,服务器端代码运行但是采用旧的文本框搜索值...这是一个正在发生的事情的例子。

[使用鼠标]

  1. 在搜索框中输入“Mary”,点击鼠标搜索,为Mary返回结果。
  2. 在搜索框中输入“Bob”,点击鼠标搜索,为Bob返回结果。
  3. [使用Keypress事件和触发点击方法]

    1. 在搜索框中输入“Mary”,然后按回车键,结果返回“”。
    2. 在搜索框中输入“Bob”,然后按Enter键,为Mary返回结果。
    3. 这是我在$(document).ready event。

      中运行的客户端代码
          $('.txtSearch').keypress(function(event){
      
              var keycode = (event.keyCode ? event.keyCode : event.which);
      
              if(keycode == '13'){
                  $('.btnSearch').click();            
              }
      
          });
      

      任何人都可以解释为什么通过JQuery的click事件不会获取当前的搜索文本框值,但实际上用鼠标单击该按钮会是什么?

      ...谢谢

      此外...此搜索框是自定义构建的服务器控件,因此每次在Control.CreateChildControls方法中都会在代码中创建文本框和按钮等组件。

      我唯一的猜测是

      1. 点击搜索按钮会在生命周期的后期以某种方式触发服务器端点击事件,而不是使用JQuery.click()方法......(不太可能是这样)或

      2. 有关视图状态数据的信息。也许用于触发click事件的JQuery方法会导致视图状态数据在我需要之后与服务器控件绑定回来。

0 个答案:

没有答案