为什么默认输入按钮在某些浏览器中不起作用?

时间:2009-11-04 16:57:33

标签: asp.net linkbutton panels

是否有任何建议用于设置默认输入按钮,该按钮不仅适用于IE,还适用于Firefox,Chrome,Safari等。我有一些默认按钮设置的面板,但当我在非浏览器中输入时,它只是默认为页面上的第一个链接。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您可以编写一些javascript来检查按下哪个按钮 - 如果是回车键,请执行您想要的操作。

使用以下内容检查输入:

function checkEnter()
{
if(event)
{
if(evnet.keyCode == 13) //ur code
}
else if(evt)
{
if(evt.keyCode == 13) //ur code
}
} 

答案 1 :(得分:1)

我在这里提供了两个例子,第一个使用jQuery而第二个使用旧学校的javascript。

<强>的jQuery

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 
<script language="javascript" type="text/javascript">
    $("document").ready(function(){
        $(".searchBox").keypress(function(e){
            if (e.keyCode == 13)
                //add code here

        });
    });
</script>

<div class="searchBox">
    <input type="text" name="searchText"/>
    <input type="submit" value="search now" />
</div>

纯javascript

我在对表单周围的div使用“onkeypress”操作之前已经这样做了。这在IE7,Firefox3和Chrome中进行了测试。

这是一个例子:

<div id="searchBox" onkeypress="return clickButton(event,'btnSearch')">
    <input name="searchText" type="text" id="searchText"  />
    <input type="button" name="btnSearch" value="Search" id="btnSearch" onClick="SubmitAction()" /> 
</div>


<script type="text/javascript" language="javascript"> 
    function SubmitAction()
    {
        alert('button clicked');
    }

    function clickButton(e, btId){ 
          var bt = document.getElementById(btId);      
          if (typeof bt == 'object'){ 
                if(navigator.appName.indexOf("Netscape")>(-1)){ 
                      if (e.keyCode == 13){ 
                            bt.click(); 
                            return false; 
                      } 
                } 
                if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1)){ 
                      if (event.keyCode == 13){ 

                            bt.click();
                            event.cancelBubble = true; 
                            return false; 
                      } 
                } 
          } 
    }
</script> 

您可能需要对其进行编辑,以使其在所有浏览器中完全兼容,但您应该从中获取相关信息。基本上任何按键在此div被聚焦时将调用clickButton()函数。正如其他答案所提到的,e.keyCode为13表示Enter按键。

答案 2 :(得分:0)

我添加了面板控件,它在我的工作正常。

<asp:Panel ID="panSearch" runat="server" 
       DefaultButton="btnSearch2" Width="100%" >
    <table width="100%">

    <tr>
     <td>First Name</td>
     <td ><asp:TextBox ID="txtboxFirstName2" 
           runat="server" ></asp:TextBox></td>
    </tr>

您还可以浏览this link