zoukankan      html  css  js  c++  java
  • 小谢第13问:输入框绑定回车enter事件自动刷新页面

    今天给input输入框绑定了按enter搜索事件,结果发现按enter键后会自动刷新页面 

    $("input[name='projectName']").keyup(function(){
         if(event.keyCode == 13){
              reloadGrid();
         }
    });

    当我删除掉了写的keyup方法之后一样出现了回车自动刷新整个界面的情况

    <input type="text" class="form-control" id="projectName" name="projectName" placeholder="请输入项目名称"/>

    甚至当我删除掉了id name属性一样会有自动刷新的情况,然后就推断出不是绑定了事件。

    然后又想到可不可能是有人写过哪个元素的第几个子元素之类的,我在这个input下面加入了一个新的input。

    <input type="text" class="form-control" placeholder="请输入项目名称"/>
    <input type="text" class="form-control" placeholder="wingzing"/>

    发现加入了新的input之后,不会出现自动刷新整个页面的情况了,立刻想到是不是这个form表单的原因。
    原因:在一个form表单中,若只有一个input,按回车键表单会自动提交,但是当表单中存在多个input时,按回车键不会执行任何操作,这是form表单的一个特性。

    解决方案
    1、直接去除掉form表单,当然这是最简单粗暴的方法。

    2、如果一个input会自动提交,那么比较容易想到的是再加一个input。值得注意的是 这里的input不能设置type为hidden,这样一样是不生效的,form一样会认为只有一个input。需要设置成 <input type="text" class="form-control" style="display:none"> 。

    3、给input加上回车事件直接return false。在input加上οnkeydοwn="if(event.keyCode==13){return false;} 。

    4、直接阻止form表单的提交,在form表单加入οnsubmit="return false;"。 

  • 相关阅读:
    AES加密demo
    js处理文本中特殊字符
    mybatis关联查询举例
    mysql杀进程脚本
    设置连接超时,connectTimeOut与readTimeOut需要同时设置
    JVM学习笔记(四)------内存调优
    JVM学习笔记(三)------内存管理和垃圾回收
    JVM学习笔记(二)------Java代码编译和执行的整个过程
    JVM学习笔记(一)------基本结构
    HTML常用标签及其全称
  • 原文地址:https://www.cnblogs.com/xieoxie3000question/p/13037279.html
Copyright © 2011-2022 走看看