Jquery实现form表单提交后局部刷新页面的多种方法

     最近做一个小项目,刚好需要用到搜索功能,实现搜索框内输入数据然后按回车或者点击“提交”,然后给后台数据库处理并返回数据给前端,在前端局部更新数据。

     但是遇到了一个小问题,就是form表单下任意输入框输入完按回车提交,整个页面都会刷新,就算我用ajax从后台取出数据返回前端把页面更新了,整个页面还是会立马刷新成原来的样子。

     问题和ajax其实并没有太大关系。是js部分要进行一定的转换。

     测试代码:

复制代码
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="UTF-8">
 5 <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
 6 <script type="text/javascript">
 7 $(document).ready(function ()
 8 {
 9     $("#form1").submit(function () 
10     {
11         $("#show").text("444");
12     });
13     
14     $("#form2").submit(function () 
15     {
16         $("#show").text("777");
17         //中间可以做一些ajax数据交互,让"777"为后台返回的值
18         return false;
19     });
20     
21     $("#btn").click(function () 
22     {
23         $("#show").text("555");
24     });
25     
26     $("#num3").keydown(function(e)
27     { 
28         //按下键盘触发函数
29         if(e.keyCode==13)
30         { 
31             //如果按下的是回车
32             $("#show").text("666"); //处理事件
33         }
34     });
35 })
36 </script>
37 </head>
38 <body>
39     <form id="form1">
40         表单一:<input type="text">
41         <input type="submit" value="在左侧输入框按回车或点击此按钮,可以看到文本值333一闪而过为444又回到333">
42     </form>
43 
44     <form id="form2">
45         表单二:<input type="text">
46         <input type="submit" value="在左侧输入框按回车或点击此按钮,可以看到文本值333改为777不变回去">
47     </form>
48 
49     独立输入框(按回车更新文本为666):<input type="text" id="num3">
50     <br>
51 
52     <button id="btn">点击更改文本值为555</button>
53     <span id="show">333</span>
55 </body>
56 </html>
复制代码

     界面:

    

     首先form不能有action跳转,有action跳转是肯定会更新或者跳转到其他页面的

          方法一:给form表单写一个onsubmit函数,在最后加一句:return false; 如果不加return false,提交页面时,整个页面会立马刷新,数据改变只是一闪而过;

          方法二:不用<input type="submit">的方式,改为设置一个button按钮,让用户通过手动点击按钮来实现数据更改。

      此问题归根结底与ajax并没有直接关系,ajax只是前后端交互的一种手段,最后还是要通过前端来实现数据部分更新的。这个问题是前端的问题。

 

转载链接:https://www.cnblogs.com/dhx96/p/6795057.html

posted on   SuperSnowYao  阅读(12880)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示