为什么当我点击搜索时页面会刷新
Why does page refresh when i click search?
我正在尝试构建一个程序,帮助我将产品添加到特定的网站,因此,使用jsp调用产品(已经输入数据库)(我使用了一个自定义bean来处理所有连接等)。
到目前为止,当页面加载时,我已经在屏幕上显示了整个产品列表。
当单击搜索按钮时,我混合使用了javascript和jsp(我知道jsp是服务器端和javascript客户端,但情况如下)。
当我点击搜索按钮时,在大约一毫秒的时间里,我可以看到搜索显示了正确的结果,但随后页面立即刷新,并再次显示整个列表,我还检查了浏览器上的代码,它显示javascript函数正在处理结果,但没有显示。。
这是我的代码(原谅糟糕的编程技术,我是新手)
<jsp:useBean id="Etn" scope="session" class="com.etn.beans.Contexte" />
<%@page import="com.etn.lang.ResultSet.Set" %>
<%@page import="java.io.BufferedReader" %>
<%@page import="java.io.IOException" %>
<%@page import="java.io.InputStreamReader" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Product selection</title>
<link rel="stylesheet" type="text/css" href=" <%=request.getContextPath()%>/css/bootstrap__portal__.css" />
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/font-awesome.css"/>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/font-awesome.min.css"/>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/bootstrap.css"/>
<script src="<%=request.getContextPath()%>/js/bootstrap.js"></script>
<script src="<%=request.getContextPath()%>/js/jquery.js"></script>
<script src="<%=request.getContextPath()%>/js/common.js"></script>
enter code here<script src="<%=request.getContextPath()%>/js/jquery-1.9.1.js"></script>
<script>
function function1(){
document.getElementById('div1').innerHTML =
"<%
String abc=request.getParameter("s1");
if(abc==null){}
else{
Set rs2 = Etn.execute("select * from products where id = '"+abc+"'");
if(rs2.next()){
out.write(rs2.value("id")+" ");
out.write (rs2.value("image_name")+"<br>");
out.write(rs2.value("image_actual_name")+" ");
out.write
(rs2.value("product_type")+"<br><br>");
}
}
%>";
}
</script>
</head>
<body>
<div class ="container">
<center><h2> Search Product </h2></center>
<form action="index.jsp">
<br><br>
<div class ="col-sm-4">
<label> Search By ID </label>
<br>
<input name ="s1" id="e1" type ="text" class ="input-lg"/>
<button class="btn btn-primary" onclick="function1();">Search</button>
<br>
</div>
</form>
<div id="div1">
<%
Set rs = Etn.execute("select * from products");
while(rs.next()){
%><div><%
out.write(rs.value("id")+" ");
out.write (rs.value("image_name")+"<br>");
out.write(rs.value("image_actual_name")+" ");
out.write(rs.value("product_type")+"<br><br>");
}
%>
</div>
</div>
</div>
</body>
</html>
因为它是表单中的提交按钮,这就是提交按钮的作用。
您可以通过onclick函数return false
来停止提交按钮的正常行为(即提交表单)。
在不引人注目的JS的精神中,当JS失败时,你应该让服务器端的代码被处理来正确处理表单提交。
这是因为您的button
正在提交表单,因此触发了一个新的请求,该请求将重新加载页面。您可以将type='button'
添加到按钮,也可以从function1()
中添加return false
相关文章:
- 用程序搜索JQuery数据表中的文本
- 强制模板刷新ember.js
- 如何通过ajax刷新JSF填充的javascript变量
- 在html Select中添加搜索
- Ajax Live搜索发布到Laravel视图
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 学生搜索项目jquery/javascript
- 用于搜索的聚合物嵌套绑定
- 在javascript中搜索具有重复值的两个数组中的匹配值
- 如何解决Yii中的页面刷新问题
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- 使用javascript搜索具有用户输入的数组
- 在自动刷新网页时搜索单词
- 在 ajax POST 后根据搜索条件刷新表
- 允许在表刷新后键入数据表搜索按钮
- 需要搜索框不刷新页面,因此函数将加载标记
- 在Node/Express中登录Passport JS后没有刷新页面和搜索
- 如何刷新过滤搜索时的“清除”按钮;在文本的边缘点击
- 为什么当我点击搜索时页面会刷新
- 刷新表后对数据表进行排序和搜索