如何将加密值从包含“onchange”的JAVA构建的HTML传递给HTML

时间:2018-05-08 09:47:25

标签: java html ajax

我将这个从JAVA通过AJAX传递给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 ==

加密的原因是此值是我在更改日期时用于更新数据库的密钥。因此,我想在更新数据库之前阻止它被某人更改,导致错误的行被更改。

1 个答案:

答案 0 :(得分:1)

您正在将myFunction传递给",因此您需要用双引号("' onchange='myFunction(this.value, \"" + encoded_award_ID.replace("\"", "&quot;") + "\")' style='width: 160px;'/>";

包裹它
{{1}}

并记得在过程中逃避双引号