【发布时间】:2009-11-04 16:57:33
【问题描述】:
有什么建议可以设置一个默认的输入按钮,它不仅可以在 IE 中使用,还可以在 Firefox、Chrome、Safari 等中使用。我有许多面板都设置了默认按钮,但是当我在非 ie 浏览器中按 Enter 时,它只是默认为页面上的第一个链接。
有什么建议吗?
【问题讨论】:
标签: asp.net linkbutton panels
有什么建议可以设置一个默认的输入按钮,它不仅可以在 IE 中使用,还可以在 Firefox、Chrome、Safari 等中使用。我有许多面板都设置了默认按钮,但是当我在非 ie 浏览器中按 Enter 时,它只是默认为页面上的第一个链接。
有什么建议吗?
【问题讨论】:
标签: asp.net linkbutton panels
您可以编写一些 javascript 来检查按下的是哪个按钮 - 如果是回车键,则执行您想要的操作。
检查输入类似于:
function checkEnter()
{
if(event)
{
if(evnet.keyCode == 13) //ur code
}
else if(evt)
{
if(evt.keyCode == 13) //ur code
}
}
【讨论】:
我在这里提供了 2 个示例,第一个使用 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() 函数。正如其他答案所提到的,13 的 e.keyCode 代表 Enter 按键。
【讨论】:
我添加了面板控件,它在我的身上运行良好。
<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
【讨论】: