js 响应回车事件

sugarTan 2011-07-20 10:43:08
目的:在input框中,回车后响应一个事件,如调用lsnSearchVid方法;
要求:当输入框为中文输入法时,回车可能是“输入当前字母的英文而非中文”、“清除编码”、“自动转为英文状态”等输入法特殊作用,现要在这种特殊作用下时,不响应lsnSearchVid方法,如何实现?

<script type="text/javascript">
function lsnSearchVid() {
var code = event.keyCode;
if (13 == code) {
//searchvid();
alert(123456);
}
}
</script>
<body>
<input type="text" name="dwname" onkeyup="lsnSearchVid()">
</body>
...全文
31696 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sugarTan 2011-07-27
  • 打赏
  • 举报
回复
看了baidu的代码,看了大半天,原来是用form 中的submit来控制的
无语了

为了达到这个效果,就写一个form 表单好了,在onsubmit的时候调用一来这个方法,然后再return false就不响应form表单的提交。

暂时这样了

谢谢各位!
sugarTan 2011-07-20
  • 打赏
  • 举报
回复
有没有别的什么策略?
sugarTan 2011-07-20
  • 打赏
  • 举报
回复
有Bug: 输入几个字之后再回车仍然会响应lsnSearchVid方法
豆虫 2011-07-20
  • 打赏
  • 举报
回复
<script type="text/javascript">
var old;
function lsnSearchVid(event,o){
if(old == o.value) {
return;
}
var code = event.keyCode;
if (13 == code) {
old = o.value
}
}
</script>
<body>
<input type="text" name="dwname" onkeyup="lsnSearchVid(event,this)">
</body>
sugarTan 2011-07-20
  • 打赏
  • 举报
回复
楼上的有用,不过还有bug呀
挨踢直男 2011-07-20
  • 打赏
  • 举报
回复
<script type="text/javascript">
var old;
function lsnSearchVid(o) {
if(old == o.value) return
var code = event.keyCode;
if (13 == code) {
old = o.value
//searchvid();
alert(123456);
}
}
</script>
<body>
<input type="text" name="dwname" onkeyup="lsnSearchVid(this)">
</body>
xuexiaodong2009 2011-07-20
  • 打赏
  • 举报
回复
有难度,没遇到过
lsw645645645 2011-07-20
  • 打赏
  • 举报
回复
帮顶啦
sugarTan 2011-07-20
  • 打赏
  • 举报
回复
为什么别人baudu能做得那么好呢?下面百度的原代码,我整理了一下,看得头昏呀,还没看出来怎么处理的:
<!doctype html><html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>百度一下,你就知道</title>
<style>
html{overflow-y:auto}
body{font:12px arial;text-align:center;background:#fff}
body,p,form,ul{margin:0;padding:0}body,form,#fm{position:relative}
td{text-align:left}
img{border:0}
a{color:#00c}
a:active{color:#f60}
#u{padding:7px 10px 3px 0;text-align:right}
#m{width:680px;margin:0 auto}
#nv{font-size:16px;margin:0 0 4px;text-align:left;text-indent:117px}
#nv a,#nv b,.btn,#lk{font-size:14px}
#fm{padding-left:90px;text-align:left}
#kw{width:404px;height:22px;padding:4px 7px;padding:6px 7px 2px\9;font:16px arial;background:url(http://www.baidu.com/img/i-1.0.0.png) no-repeat -304px 0;_background-attachment:fixed;border:1px solid #cdcdcd;border-color:#9a9a9a #cdcdcd #cdcdcd #9a9a9a;vertical-align:top}
.btn{width:95px;height:32px;padding:0;padding-top:2px\9;border:0;background:#ddd url(http://www.baidu.com/img/i-1.0.0.png) no-repeat;cursor:pointer}
.btn_h{background-position:-100px 0}
#kw,.btn_wr{margin:0 5px 0 0}
.btn_wr{width:97px;height:34px;display:inline-block;background:url(http://www.baidu.com/img/i-1.0.0.png) no-repeat -202px 0;_top:1px;*position:relative}
#lk{margin:33px 0}
#lk span{font:14px "宋体"}
#lm{height:60px}
#lh{margin:16px 0 5px;word-spacing:3px}
#mCon{height:18px;line-height:18px;position:absolute;right:7px;top:8px;top:10px\9;cursor:pointer;padding:0 18px 0 0;background:url(http://www.baidu.com/img/bg-1.0.0.gif) no-repeat right -134px;background-position:right -136px\9}
#mCon span{color:#00c;cursor:default;display:block}
#mCon .hw{text-decoration:underline;cursor:pointer}
#mMenu{width:56px;border:1px solid #9a99ff;list-style:none;position:absolute;right:7px;top:28px;display:none;background:#fff}
#mMenu a{width:100%;height:100%;display:block;line-height:22px;text-indent:6px;text-decoration:none}
#mMenu a:hover{background:#d9e1f6}
#mMenu .ln{height:1px;background:#ccf;overflow:hidden;margin:2px;font-size:1px;line-height:1px}
#cp,#cp a{color:#77c}
#sh{display:none;behavior:url(#default#homepage)}
</style></head>
<body>
<p id="u">
<a href="/gaoji/preferences.html">搜索设置</a> | 
<a href="http://passport.baidu.com/?login&tpl=mn">登录</a>
</p><div id="m"><p id="lg">
<img src="http://www.baidu.com/img/baidu_sylogo1.gif" width="270" height="129" usemap="#mp"></p>
<p id="nv"><a href="http://news.baidu.com">新 闻</a> <b>网 页</b> <a href="http://tieba.baidu.com">贴 吧</a> <a href="http://zhidao.baidu.com">知 道</a> <a href="http://mp3.baidu.com">MP3</a> <a href="http://image.baidu.com">图 片</a> <a href="http://video.baidu.com">视 频</a> <a href="http://map.baidu.com">
地 图</a></p>
<div id="fm">
<form name="f" action="/s">
<input type="text" name="wd" id="kw" maxlength="100">
<input type="hidden" name="rsv_bp" value="0">
<span class="btn_wr">
<input type="submit" value="百度一下" id="su" class="btn" onmousedown="this.className='btn btn_h'"
onmouseout="this.className='btn'"></span>
</form><div id="mCon">
<span>输入法</span>
</div><ul id="mMenu"><li><a href="#" name="ime_hw">手写</a></li><li><a href="#" name="ime_py">拼音</a></li><li class="ln"></li><li><a href="#" name="ime_cl">关闭</a></li></ul></div>
<p id="lk"><a href="http://hi.baidu.com">空间</a> 
<a href="http://baike.baidu.com">百科</a> 
<a href="http://www.hao123.com">hao123</a>
<span> | <a href="/more/">更多>></a></span></p><p id="lm"></p><p><a id="sh" onClick="this.setHomePage('http://www.baidu.com/')" href="http://utility.baidu.com/traf/click.php?id=215&url=http://www.baidu.com" onmousedown="return ns_c({'fm':'behs','tab':'homepage','pos':0})">
把百度设为主页</a></p><p id="lh"><a href="http://e.baidu.com/?refer=888">加入百度推广</a> | <a href="http://top.baidu.com">搜索风云榜</a> | <a href="http://home.baidu.com">关于百度</a> | <a href="http://ir.baidu.com">About Baidu</a></p><p id="cp">©2011 Baidu <a href="/duty/">使用百度前必读</a> <a href="http://www.miibeian.gov.cn" target="_blank">京ICP证030173号</a> <img src="http://gimg.baidu.com/img/gs.gif"></p></div><map name="mp"><area shape="rect" coords="40,25,230,95" href="http://hi.baidu.com/baidu/" target="_blank" title="点此进入 百度的空间" onmousedown="return ns_c({'fm':'behs','tab':'bdlogo'})">
</map>
</body>
<script>
var w=window,d=document,n=navigator,k=d.f.wd,
a=d.getElementById("nv").getElementsByTagName("a"),
isIE=n.userAgent.indexOf("MSIE")!=-1&&!window.opera,
sh=d.getElementById("sh");
if(isIE&&sh&&!sh.isHomePage("http://www.baidu.com/")){
sh.style.display="inline"
}
for(var i=0;i<a.length;i++){
a[i].onclick=function(){
if(k.value.length>0) {
var C=this,
A=C.href,
B=encodeURIComponent(k.value);
if(A.indexOf("q=")!=-1){
C.href=A.replace(/q=[^&$]*/,"q="+B)
} else {
this.href+="?q="+B
}
}
}
}
(function(){if(/q=([^&]+)/.test(location.search)){k.value=decodeURIComponent(RegExp.$1)}})();
if(n.cookieEnabled&&!/sug?=0/.test(d.cookie)){
d.write('<script src=http://www.baidu.com/js/bdsug.js?v=1.0.3.0><\/script>')
}
function addEV(C,B,A){
if(w.attachEvent){C.attachEvent("on"+B,A)}
else{if(w.addEventListener){C.addEventListener(B,A,false)}}
}
function G(A){return d.getElementById(A)}
function ns_c(E){
var F=encodeURIComponent(window.document.location.href),
D="",
A="",
B="",
C=window["BD_PS_C"+(new Date()).getTime()]=new Image();
for(v in E){
A=E[v];D+=v+"="+A+"&"
}
B="&mu="+F;
C.src="http://nsclick.baidu.com/v.gif?pid=201&pj=www&"+D+"path="+F+"&t="+new Date().getTime();return true
}
var bdimeHW={hasF:1};
var imeTar="kw";
var ime_t1=(new Date()).getTime();
(function(){
var M=G("mCon"),A=G("mMenu");
var B=["输入法","手写","拼音"],
O=["cl","hw","py"],
D=["","http://www.baidu.com/hw/hwInput_1.1.js","http://www.baidu.com/olime/bdime.js"],
N=[0,0,0];
var L=n.cookieEnabled;
if(L&&/\bbdime=(\d)/.test(d.cookie)){
H(O[RegExp.$1],false)
}
var K=A.getElementsByTagName("a");
for(var I=0;I<K.length;I++){
K[I].onclick=F
}
if(isIE){
var E=[];
var P=M.getElementsByTagName("*");
for(var I=0;I<P.length;I++){
E.push(P[I])
}
E.push(M);
var P=A.getElementsByTagName("*");
for(var I=0;I<P.length;I++){E.push(P[I])}
E.push(A);
for(var I=0;I<E.length;I++){E[I].setAttribute("unselectable","on")}
}
function F(){
ime_t1=(new Date()).getTime();
var R=this.name.split("_")[1];
try{
if(w.bdime){bdime.control.closeIme()}
} catch(Q){}
H(R,true);
return false
}
function H(V,Q){
var T=0;
if(V==O[1]){
T=1;
M.innerHTML='<span id="imeS" class="hw">'+B[1]+"</span>";
if(isIE){G("imeS").setAttribute("unselectable","on")}
function S(){
if(!N[1]){
if(d.selection&&d.activeElement.id&&d.activeElement.id=="kw"){
bdimeHW.hasF=1
}
bdimeHW.input=imeTar;bdimeHW.submit="su";
J(D[1]);
setTimeout(function(){if(typeof bdsug!="undefined"){bdsug.sug.initial()}},1000);
N[1]=1
}else{bdimeHW.reload(Q)}
}
if(Q){S()}else{addEV(G("imeS"),"click",S)}
} else{
if(V==O[2]){
T=2;M.innerHTML="<span>"+B[2]+"</span>";
if(!N[2]){J(D[2]);
N[2]=1
} else {
try{
if(w.bdime){bdime.control.openIme()}
}catch(U){}
}
} else {
M.innerHTML="<span>"+B[0]+"</span>"
}
} if(Q&&L) {
var R=new Date();
R.setTime(R.getTime()+365*24*3600*1000);
d.cookie="bdime="+T+";domain=baidu.com;path=/;expires="+R.toGMTString()
}
}
function J(Q){if(Q){var R=d.createElement("script");R.src=Q;d.getElementsByTagName("head")[0].appendChild(R)}}
function C(R){
var R=R||window.event;var Q=R.target||R.srcElement;A.style.display=Q.id=="mCon"&&A.style.display!="block"?"block":"none"
}
addEV(d,"click",C)
})();
(function() {
var C=G("lm").getElementsByTagName("A");
for(var B=0,A=C.length;B<A;B++){
var D=C[B];
addEV(D,
"mousedown",
(function(E,F){
return function(){ns_c({fm:"behs",tab:"bdlnk",p1:F+1,title:E.innerHTML,url:E.href})}
})(D,B)
)}})();
addEV(w,"load",function(){k.focus()});
w.onunload=function(){};</script>
<script type="text/javascript" src="http://www.baidu.com/cache/hps/js/hps-1.1.js"></script>
</html>

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧