我正在尝试在jsp页面中生成令牌,当用户输入错误的令牌时,我希望禁用提交按钮 我可以生成一个令牌,防止复制/粘贴就好了 但是当谈到设定条件时,问题就出现了 我尝试使用scriptlet设置条件但不会工作 请帮忙!
<%@page import="com.example.UserBean"%>
<%@page import="java.util.UUID"%>
<%@ 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="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$('#text1').bind("cut copy paste", function(e) {
e.preventDefault();
alert("You cannot paste the Token!");
$('#text1').bind("contextmenu", function(e) {
e.preventDefault();
});
});
});
</script>
</head>
<body>
<form action="LoginServlet">
<input type="hidden" name="sourcename" value="login">
<table>
<tr>
<td>User Name</td>
<td><input type="text" name="user_name"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="pass_word"></td>
</tr>
<tr>
<td>Token</td>
<td><input type="text" id="text1" name="token"></td>
<td>
<%String tokenKey
UUID.randomUUID().toString().substring(0,8);
%> <%=tokenKey%>
</td>
</tr>
<tr>
<td>
<td><button type="submit">Login</button></td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:0)
您需要在代码的javascript部分生成令牌 ,即
save
或更好,进入一些隐藏元素或元素属性,然后使用JS检索其值:
<script type="text/javascript">
<% String tokenKey = UUID.randomUUID().toString().substring(0,8); %>
$(document).ready(function() {
// here goes your binding, e.g. to change event of the #text1 element
// and inside the function
var generatedToken = '<%= tokenKey %>';
var tokenFromUser = $('#text1').val();
if (generatedToken != tokenFromUser) {
// disable submit button
} else {
// enable submit button
}
});
</script>
... HTML ...
<tr>
<td>Token</td>
<td><input type="text" id="text1" name="token"></td>
<td><%= tokenKey %></td>
</tr>
通过这种方式,您可以稍后将您的Javascript代码移动到外部文件中,它仍然有效。