日期:2014-05-16  浏览次数:20360 次

有熟悉asp.net又精通javascript的进来看看这个问题
我母版页中放一文本框和一按钮,用来做搜索。用鼠标点击按钮是没问题的,会跳转到搜索页;但是如果在文本框中输入内容然后按回车只刷新一下当前页面而已。 
我在母版页中加入了如下代码: 
  function document.onkeydown()  
  {  
  if(event.keyCode==13)  
  {  
  event.keyCode=9;  
  event.returnValue=false;  
  $(" <%=btnSearch.ClientID% >").click(); 
  }  
  } 

这样这个问题解决了。但是又有了其它的问题:在其它应用母版页的页面中,如果存在文本框,那么在文本框中输入内容按回车没有反应,不换行。

------解决方案--------------------
是啊,你忽略了一个很重要的环节,没有考虑如果遇到了多行文本框的情况. 
可以这么考虑,当切仅当文本框为单行文本框时才进行这个设计. 
JScript code


<script>
        
window.onload=function()
{
   for(var i=0;i<document.getElementsByTagName("input").length;i++)
   {
      var thisObj=document.getElementsByTagName("input")[i];
      if(thisObj.getAttribute("type")=="text")
      {
         thisObj.onkeydown=function()
         {
            if(event.keyCode==13)
            {
               event.keyCode=9;
               event.returnValue=false;
               $(" <%=btnSearch.ClientID% >").click();
            }
         }
      }
   }
}
        
</script>

------解决方案--------------------
<script type="text/javascript">
var flag = true;
function document.onkeydown()
{
if(flag)

if(event.keyCode==13)
{
event.keyCode=9;
event.returnValue=false;
$('<%=Button1.ClientID %>').click();
}
}
}

function document.onclick()
{
var obj = event.srcElement;
if(obj.type=="textarea")
{
flag = false;
}
else 
{
flag = true;
}
}
</script>