在asp.net中回车触发指定按钮的事件
2009-11-04 21:31
519 查看
今天在开发中,遇到了一个问题:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/foxgame010914/EntryImages/20091104/webpage.gif)
在Header中有一个搜索输入框,搜索按钮是Button控件,在“资讯文章搜索”用户自定义控件中也用到了Button控件。
将焦点停在“资讯标题或内容”输入框中,回车,但是相应的是Header中输入框内容。
原因:回车执行的就是你页面上的第一个submit button。解决方法:(以下以资讯搜索输入框为例)
1、js:
----------------------------------------------------------------------------
/* 回车后执行按钮 */
function SubmitKeyClick(button){
if (event.keyCode == 13){
event.keyCode = 9;
event.returnValue = false;
document.all[button].click();
}
}
function checkinputbox(){
var charBag = "[^`~@#$%^&//'|*]";
var searchkey = document.getElementById("ArticleSearch1_txtSearchKey");
if (trim(searchkey.value).length == 0 || trim(searchkey.value).length > 30){
alert("资讯文章关键字不能都为空或长度不能超过个字符!");
searchkey.focus();
return false;
}
if (trim(searchkey.value) != ""){
for (var i = 0; i < searchkey.value.length; i++) {
var c = searchkey.value.charAt(i);
if (charBag.indexOf(c) > -1) {
alert("搜索资讯文章关键字字符串中含有非法字符(" + c +")!");
searchkey.focus();
return false;
}
}
}
}
2、aspx页面控件:
---------------------------------------------------
<input id="txtSearchKey" name="txtSearchKey" type="text" runat="server" maxlength="30" onfocus="this.select();" />
3、cs中:
---------------------------------------------------
this.txtSearchKey.Attributes.Add("onkeypress", "SubmitKeyClick('ArticleSearch1_btnSearch');");
this.btnSearch.Attributes.Add("onclick", "return checkinputbox();");
在Header的cs中,同时将输入框的Attributes属性添加上即可。
this.txtKey.Attributes.Add("onkeypress", "SubmitKeyClick('Header1_btnSearchkey');");
缺点:
目前该方法不能兼容ff,原因为:
1、ie的event.keyCode对应ff中的even.which(当然可以用if(document.all)来判断);
2、event.returnValue 在ff中可用return false替换,也可以用ff中的e.preventDefault();
3、click()在ff中也不支持。当然,如果不怕麻烦,可以使用jquery,用$("#...").click(function() { ...}来实现。可是我不想为了这个问题复杂化,在此从简。如果您有更好的方法,欢迎探讨^_^
欢迎访问:http://www.521189.com (521联合供货网)
QQ:863858965
email:qifl23702570@163.com
![](http://p.blog.csdn.net/images/p_blog_csdn_net/foxgame010914/EntryImages/20091104/webpage.gif)
在Header中有一个搜索输入框,搜索按钮是Button控件,在“资讯文章搜索”用户自定义控件中也用到了Button控件。
将焦点停在“资讯标题或内容”输入框中,回车,但是相应的是Header中输入框内容。
原因:回车执行的就是你页面上的第一个submit button。解决方法:(以下以资讯搜索输入框为例)
1、js:
----------------------------------------------------------------------------
/* 回车后执行按钮 */
function SubmitKeyClick(button){
if (event.keyCode == 13){
event.keyCode = 9;
event.returnValue = false;
document.all[button].click();
}
}
function checkinputbox(){
var charBag = "[^`~@#$%^&//'|*]";
var searchkey = document.getElementById("ArticleSearch1_txtSearchKey");
if (trim(searchkey.value).length == 0 || trim(searchkey.value).length > 30){
alert("资讯文章关键字不能都为空或长度不能超过个字符!");
searchkey.focus();
return false;
}
if (trim(searchkey.value) != ""){
for (var i = 0; i < searchkey.value.length; i++) {
var c = searchkey.value.charAt(i);
if (charBag.indexOf(c) > -1) {
alert("搜索资讯文章关键字字符串中含有非法字符(" + c +")!");
searchkey.focus();
return false;
}
}
}
}
2、aspx页面控件:
---------------------------------------------------
<input id="txtSearchKey" name="txtSearchKey" type="text" runat="server" maxlength="30" onfocus="this.select();" />
3、cs中:
---------------------------------------------------
this.txtSearchKey.Attributes.Add("onkeypress", "SubmitKeyClick('ArticleSearch1_btnSearch');");
this.btnSearch.Attributes.Add("onclick", "return checkinputbox();");
在Header的cs中,同时将输入框的Attributes属性添加上即可。
this.txtKey.Attributes.Add("onkeypress", "SubmitKeyClick('Header1_btnSearchkey');");
缺点:
目前该方法不能兼容ff,原因为:
1、ie的event.keyCode对应ff中的even.which(当然可以用if(document.all)来判断);
2、event.returnValue 在ff中可用return false替换,也可以用ff中的e.preventDefault();
3、click()在ff中也不支持。当然,如果不怕麻烦,可以使用jquery,用$("#...").click(function() { ...}来实现。可是我不想为了这个问题复杂化,在此从简。如果您有更好的方法,欢迎探讨^_^
欢迎访问:http://www.521189.com (521联合供货网)
QQ:863858965
email:qifl23702570@163.com
相关文章推荐
- 在asp.net中,如何回车触发指定按钮的事件?
- asp.net的TextBox回车触发指定的按钮事件
- ASP.NET中回车触发指定按钮的事件
- 在asp.net中,如何回车触发指定按钮的事件
- asp.net里有多个按钮的提交问题。以及回车触发指定按钮事件的问题。
- asp.net中如何回车触发指定按钮的事件
- asp.net中如何回车触发指定按钮的事件(实现按回车提交)
- asp.net中如何回车触发指定按钮的事件
- [导入]在asp.net中,如何回车触发指定按钮的事件?
- asp.net中如何回车触发指定按钮的事件(实现按回车提交)
- 在asp.net中,如何回车触发指定按钮的事件?
- 在asp.net中,如何回车触发指定按钮的事件
- asp.net中如何回车触发指定按钮的事件
- asp.net中如何回车触发指定按钮的事件(实现按回车提交)
- asp.net 页面回车触发button按钮事件
- ASP.NET多个提交按钮页面,回车Enter执行指定按钮的事件
- asp.net中TextBox里面实现回车触发指定事件
- asp .net 页面回车触发button 按钮事件
- asp.net 回车激发指定按钮事件
- asp.net 回车激发指定按钮事件