我通过 AJAX 将其从 JAVA 传递到 HTML:
json = json + "<input class='form-control mr-sm-2' type='date' name='awardDate' id='awardDate' value='" + youthMemberAward.getCaAwardedDate() + "' onchange='myFunction(this.value, " + youthMemberAward.getAwId() + ")' style='width: 160px;'/>";
但是,我想在传回 YouthMemberAward.getAwId() 之前对其进行加密:
byte[] bytesEncoded =
Base64.encodeBase64(youthMemberAward.getAwId().getBytes());//encoding part
String encoded_award_ID = new String(bytesEncoded);
json = json + "<input class='form-control mr-sm-2' type='date' name='awardDate' id='awardDate' value='" + youthMemberAward.getCaAwardedDate() + "' onchange='myFunction(this.value, " + encoded_award_ID + ")' style='width: 160px;'/>";
但是,当我这样做时,我收到错误。当我检查页面时,错误是:
Uncaught SyntaxError: Unexpected token )
传回的加密值是:Ng==
加密的原因是这个值是我在日期发生更改时用来更新数据库的 key 。因此,我想在更新数据库之前防止有人更改它,从而导致更改错误的行。
最佳答案
您正在将 String
传递到 myFunction
中,因此需要用双引号 ("
) 将其括起来
"' onchange='myFunction(this.value, \"" + encoded_award_ID.replace("\"", """) + "\")' style='width: 160px;'/>";
并记住在此过程中转义双引号
关于java - 如何将加密值从包含 "onchange"的 JAVA 构建的 HTML 传递到 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50230673/