Wicket 读取时包含隐藏内容,但写入时可见的文本字段

Wicket 读取时包含隐藏内容,但写入时可见的文本字段,wicket,wicket-6,Wicket,Wicket 6,我需要一个具有以下行为的文本字段: 当呈现字段时,当前内容将以密码样式(*******)隐藏,但如果用户尝试编辑它,字段将被清除,并且他们将在明文中看到他们正在键入的内容(因此该行为并不完全等同于PasswordTextField) 你知道如何实现这种行为吗? 谢谢大家! 我认为您应该使用一些JavaScript来在触发焦点事件时使字段可读。在这里,您可以找到一个简单的脚本,它发挥了神奇的作用: 更新: 要获得所需的行为,请尝试上面页面中的以下代码: <!DOCTYPE html>

我需要一个具有以下行为的文本字段:

当呈现字段时,当前内容将以密码样式(*******)隐藏,但如果用户尝试编辑它,字段将被清除,并且他们将在明文中看到他们正在键入的内容(因此该行为并不完全等同于PasswordTextField)

你知道如何实现这种行为吗?
谢谢大家!

我认为您应该使用一些JavaScript来在触发焦点事件时使字段可读。在这里,您可以找到一个简单的脚本,它发挥了神奇的作用:

更新:

要获得所需的行为,请尝试上面页面中的以下代码:

<!DOCTYPE html>
<html>
<body>

Password: <input type="password" value="FakePSW" id="myInput" onfocus="myFunction()"><br><br>

<script>
function myFunction() {
  var x = document.getElementById("myInput");
  x.value = "";
  if (x.type === "password") {
    x.type = "text";
  } else {
    x.type = "password";
  }
}

密码:

函数myFunction(){ var x=document.getElementById(“myInput”); x、 value=“”; 如果(x.type==“密码”){ x、 type=“text”; }否则{ x、 type=“密码”; } }


我认为应该使用一些JavaScript在触发焦点事件时使字段可读。在这里,您可以找到一个简单的脚本,它发挥了神奇的作用:

更新:

要获得所需的行为,请尝试上面页面中的以下代码:

<!DOCTYPE html>
<html>
<body>

Password: <input type="password" value="FakePSW" id="myInput" onfocus="myFunction()"><br><br>

<script>
function myFunction() {
  var x = document.getElementById("myInput");
  x.value = "";
  if (x.type === "password") {
    x.type = "text";
  } else {
    x.type = "password";
  }
}

密码:

函数myFunction(){ var x=document.getElementById(“myInput”); x、 value=“”; 如果(x.type==“密码”){ x、 type=“text”; }否则{ x、 type=“密码”; } }


您可以从WicketExtensions查看
AjaxEditableLabel
,该标签在单击时会变成可编辑输入。您可以将标签设置为输入样式,并更改/覆盖代码,使其仅显示****,然后还可以覆盖OneEdit方法,以便在每次切换到编辑模式时清除背景中的输入。您可以从WicketExtensions查看
AjaxEditableLabel
,WicketExtensions是一个变为单击可编辑的输入。您可以将标签设置为输入样式,并更改/覆盖代码,使其仅显示****,然后还可以覆盖OneEdit方法,以便在每次切换到编辑模式时清除背景中的输入。谢谢!这种方法存在一个问题,即用户看不到原始值,他们应该只能更改它。但是,如果原始值到达客户端,精明(或恶意)的用户可以轻松地解开字段值的伪装。我明白了。然后您可以稍微更改示例中的代码,以使用PasswordTextField的focus事件来清理它并使其可读。我已经更新了我的原始评论。谢谢!这种方法存在一个问题,即用户看不到原始值,他们应该只能更改它。但是,如果原始值到达客户端,精明(或恶意)的用户可以轻松地解开字段值的伪装。我明白了。然后您可以稍微更改示例中的代码,以使用PasswordTextField的focus事件来清理它并使其可读。我已经更新了我的原始评论。