如何将变量值传递给输入文本值?

时间:2019-08-29 02:25:29

标签: function jsp

我想将用户输入与同一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,如何禁用输入文本框?

有什么主意吗?谢谢。

2 个答案:

答案 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 ELJSTL,并使用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>