bind绑定事件,摁回车键提交查询,点击查询也可以提交查询

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.10.2.js"></script>
</head>
<body id="b">
<form action="">
    <table>
        <tr>
            <td><input type="button" name="" value="查询" id="search" onclick="p.search()"/> </td>
        </tr>
    </table>
</form>
<br/>
<span id="aa" style="color: red"></span>
<span id="bb" style="color: blue"></span>
</body>
<script type="text/javascript">
$("#b").bind({
        keydown:function(event){
            if(event.keyCode==13)
            $("#search").removeAttr("onclick");
            p.keySearch();
        },
        keyup:function(event){
            if(event.keyCode==13)
            $("#search").attr("onclick","p.search()")
        }
    });

var p = {
    search:function(){
        $("#aa").append("aa");
    },
    keySearch:function(){
        $("#bb").append("bb");
    }
}

</script>
</html>

本例中使用bind方法绑定了keydown和keyup事件,需要在摁回车的时候去掉onlick,否则,如果在body使用onkeypress或者onkeydown或者onkeyup,则会出现下面这种情况,刷新页面,摁回车键,会执行bb,此时如果点击查询按钮,则会输出aa,然后在摁回车键,就出问题了,会先输出aa,然后输出bb,连续这样。这种情况肯定是不符合要求的,所以需要在键盘摁下的时候去除onclick,这样就不会去调用onclick方法,确保只会输出bb,在键盘起来的时候再添加onclick事件,这样点击按钮依然会触发函数输出aa,提前也需要先有onclick属性以及所调用的方法,应为刚进入页面的时候用户可能会点击查询,然后累了才会懒省事去摁回车,我们公司的测试就是这么干的,然后提出了这样的一个需求,这个小东西还真没少用工夫,好几个小时,但是还有个问题,就是IE不支持,我装了三个浏览器,一个是IE,一个火狐,一个是chrome,火狐和chrome是没有问题的,IE不行,我装的IE11,至少IE11是行不通的,这个真是无比的蛋疼

时间: 2024-10-05 14:38:50

bind绑定事件,摁回车键提交查询,点击查询也可以提交查询的相关文章

jQuery中的bind绑定事件与文本框改变事件的临时解决方法

暂时没有想到什么好的解决办法,我现在加了个浏览器判断非ie的话就注册blur事件,这样有个问题就是blur实在别的控件活动焦点的时候,txtStation控件注册的方法是为了填充它紧挨着的一个下拉列表一直没什么兴趣看jQuery,就用自己那点不咋样的javascript硬撑着,今天写一个功能时想尝试一下,用bind注册事件时发现怎么都不好使$("#txtStation").bind("onpropertychange", GetStationLevel); 复制代码

jqeury bind 绑定事件与 unbind删除绑定事件

<1> <html> <head> <title></title> <script src="../jquery-2.1.3.js"></script> </head> <body> <button id="a">a</button> <button id="b">b</button> <

jquery中bind()绑定多个事件

bind()绑定事件 $(selector).bind(event,data,function): 参数event为事件名称(如"click,mouseover....."),data是可选的,规定传递到函数的额外数据,function为事件执行的函数. 绑定单个事件比较简单 $("button").bind("click",function(){ //事件处理内容... }); 绑定多个事件时,参数在一个大括号里面,event可以加双引号也可以

浅谈jquery之on()绑定事件和off()解除绑定事件

off()函数用于移除元素上绑定的一个或多个事件的事件处理函数. off()函数主要用于解除由on()函数绑定的事件处理函数. 该函数属于jQuery对象(实例). 语法 jQuery 1.7 新增该函数.其主要有以下两种形式的用法: 用法一: jQueryObject.off( [ events [, selector ] [, handler ] ] ) 用法二: jQueryObject.off( eventsMap [, selector ] ) 参数 参数 描述 events 可选/S

jquery事件与绑定事件

1.首先,我们来看一下经常使用的添加事件的方式: <input type="button" id="btn" value="click me!" onclick="shao();" /> <script type="text/javascript"> function shao() { alert("msg is showing!"); } </script

jquery中on绑定事件

之前项目中动态创建的标签元素  在绑定事件的时候  都是无效  无论如何都不能触发 eg:在页面加载完成之后   再由脚本动态创建的<div>元素  在绑定事件的时候 例如click事件 $("div").click(function(alert("aaa")){}); 那么动态创建的元素是触发不了这个事件的 这是就要用到on来绑定事件了. 但是在W3C中并没有on事件  只有live,delegate 这是由于这里的更新很不及时  ,建议去http:/

关于动态生成dom绑定事件失效的原因

之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下: 1.事件失效的原因:(1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不到,所以绑定不了 (2)同样,当你使用var aa = document.getElementsByTagName("动态生成的元素");来获取动态生成的元素的时候也是获取不到

EXTJS-在window组件中绑定事件

[在jsp中用EXTJS绑定事件] Ext.onReady(function(){ //ex001:点击一个按钮 ,打开一个新的窗体 window重复创建的问题 //第一种实现[推荐] //JQuery code: var btn = $('#btn'); var dombtn = btn.get(0); // alert(btn.dom.value) 取到 原生的dom对象value值 var btn = Ext.get('btn'); //这个元素是经过Ext包装的一个Ext的Dom对象//

1.如何摁回车键提交表单

1.首先有一个form表单,并给它一个id属性,代码如下: <form id= "submitForm" action="" method= "post"> <input type="text" name="" value=""/> </form> 2.在jsp的head标签内写一个script脚本,代码如下: /**摁回车键提交表单查询**/ $(&