我想将用户输入与同一jsp页面上的预定义值进行比较。如果输入值与预期的相同,那么我允许用户继续提交请求表。但我不知道如何设置预定义的值进行检查。谢谢。
<tr><td>Application</td></tr>
<%
String strDBCode = "123456789";
out.println("<tr><td><b>Please input your pass code here:</b></td></tr>");
out.println("<tr><td><input type='text' name='strPassCode' value=''></td></tr>");
out.println("<tr><td><input type='hidden' name=strDBPassCode size='15' maxlength='15' value=strDBCode id='b'></td></tr>");
out.println("<tr><td><input type='button' name='chkPassCode' value=' Check ' onClick='return chkPCode()'></td></tr>");
%>
<script type="text/javascript">
function chkPCode()
{
var a = document.getElementById("a");
var b = document.getElementById("b");
var valid = true;
if (a.value != b.value) {
alert("Not Match!");
valid = false;
}
else {
alert("Match");
valid = true;
}
return valid;
}
</script>
我希望b值应为“ 123456789”,但b始终等于“ strDBPassCode”。我已经尝试过了 out.println(“ id ='b'>”); 返回错误。由于输入已经在<%%>内。
除此之外,如果有效返回为true,如何禁用输入文本框?
有什么主意吗?谢谢。
答案 0 :(得分:0)
这是因为您没有引用声明的变量。
out.println("<tr><td><input type='hidden' name=strDBPassCode size='15' maxlength='15' value="+strDBCode+" id='b'></td></tr>");
__________↑
以类似的方式,您可以更新以上代码中的name
属性。
请勿在JSP中编写脚本集,因为脚本集不应在JSP中使用超过十年。学习JSP EL,JSTL,并使用servlet编写Java代码。
参见How to avoid Java Code in JSP-Files?
答案 1 :(得分:0)
<script type="text/javascript">
function chkPCode()
{
var a = document.getElementById("a");
var b = document.getElementById("b");
var valid = true;
if (a.indexOf(b) == -1) {
alert("Not similar!");
valid = false;
}
else {
alert("Input value exist!");
valid = true;
}
return valid;
}
</script>