前些天做了个asp.net项目c#,客户要求按回车就能触发他想要点的按钮事件,
比如在登陆框内填了按回车就验证是否登陆成功,在搜索框内填了搜索
关键词,按回车就转到搜索页面
我用了2个方法,一个是c# textbox的textchanged()事件或使用JS的input 获得焦点使defaultbutton指向相应的button,但这个方法有个问题,在使用时,第一次按回车都不执行,以后都是响应的,不知道为什么第一次不触发?请高手指点
最后我用一个按钮将当前页面的所有按钮的事件集中起来,将此按钮作为默认按钮,虽然能解决问题,但个人觉得不是很好,费时效果也不好,高手指点好点的方法

解决方案 »

  1.   

    第一次是焦点转移事件
    你就说WEB没有那么强大的功能,无法实现
      

  2.   

    <input type="text" onkeydown="search();">
    <input type="button" value="search" id="search1"><script language='javascript'>
    function search(){
      if(event.keyCode==13)
       document.getElementById("search1").click();
    }
    </script>
      

  3.   

    用JS写个大概思路,语法有问题,自己看
    <script>
    function SwitchButton()<!--回车的code好象是13?-->
    {
      if (document.getElementById("searchButton").value!="" & event.eventCode=13)
       searchButtonFrom.submit();
    return false;
      if (document.getElementById("UserId").value!="" & (document.getElementById("UserPwd").value!="" & event.eventCode=13)
    LoginForm.submit();  
    }</script>
      

  4.   

    leohuang(LEO) ( ) 信誉:91    Blog 
    <input type="text" onkeydown="search();">
    <input type="button" value="search" id="search1"><script language='javascript'>
    function search(){
      if(event.keyCode==13)
       document.getElementById("search1").click();
    }
    </script>
    ————————————————————————————这段代码我有,也用过了,就是存在第一次无法触发的问题
      

  5.   

    而且页面上的按钮分布在不同的用户控件和母板页中
    ===============================================================
    关于这个问题你可以用下边这个方法获取你想得到的控件ID,我这个是获取TextBox,你用的时候修改一下.
    1<script language='javascript' type='text/javascript'>
     2function IsValidateNumber()
     3{
     4   var result=0;
     5    
     6   var m=0;
     7   var t=document.getElementsByTagName("input");//关键点得到整个页面input元素
     8   var tbCode,tbPassword;   /
     9   for(var i=0;i<t.Length;i++)
    10   {
           //判断是文本框而且ID正确
    11      if(t[i].type=="text" && t[i].indexOf("tbLoginCode")!=-1)
    12      {
    13         tbCode=t[i];
    14         break;
    15      }
    16   }  
    17    for(var i=0;i<t.Length;i++)
    18   {
    19      if(t[i].type=="password" && t[i].indexof("tbLoginPassword")!=-1)
    20      {
    21         tbPassword=t[i];
    22         break;
    23      }
    24   }
    25}