首页 > 解决方案 > 如何将加密值从包含“onchange”的 JAVA 构建的 HTML 传递到 HTML

问题描述

我通过 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==

加密的原因是这个值是我在日期发生变化时用来更新数据库的密钥。因此,在我更新数据库导致错误的行被更改之前,我想防止它被某人更改。

标签: javahtmlajax

解决方案


您正在传递 a Stringinto myFunction,因此您需要用双引号 ( ")将其括起来

"' onchange='myFunction(this.value, \"" + encoded_award_ID.replace("\"", "&quot;") + "\")' style='width: 160px;'/>";

并记住在此过程中转义双引号


推荐阅读