有熟悉asp.net又精通javascript的进来看看这个有关问题
有熟悉asp.net又精通javascript的进来看看这个问题
我母版页中放一文本框和一按钮,用来做搜索。用鼠标点击按钮是没问题的,会跳转到搜索页;但是如果在文本框中输入内容然后按回车只刷新一下当前页面而已。
我在母版页中加入了如下代码:
function document.onkeydown()
{
if(event.keyCode==13)
{
event.keyCode=9;
event.returnValue=false;
$(" <%=btnSearch.ClientID% >").click();
}
}
这样这个问题解决了。但是又有了其它的问题:在其它应用母版页的页面中,如果存在文本框,那么在文本框中输入内容按回车没有反应,不换行。
------解决方案--------------------
是啊,你忽略了一个很重要的环节,没有考虑如果遇到了多行文本框的情况.
可以这么考虑,当切仅当文本框为单行文本框时才进行这个设计.
我母版页中放一文本框和一按钮,用来做搜索。用鼠标点击按钮是没问题的,会跳转到搜索页;但是如果在文本框中输入内容然后按回车只刷新一下当前页面而已。
我在母版页中加入了如下代码:
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>