用户在单击 lock/unlock 可填写表单时设置密码

User to set password on click to lock/unlock fillable form

我想创建一个表单,允许用户锁定他们各自的字段,但如果他们需要修改或更新任何信息,也可以再次解锁。然后将表格发送回公司,在那里完成,但公司不应该 write/edit 用户输入字段。

我遇到的最接近的解决方案是一些脚本,要求用户在单击按钮时输入密码,然后此密码将 lock/unlock 表单。然而,密码应该由用户设置,最好是在第一次点击按钮时设置。目前,它已经在脚本中确定,这意味着公司将不得不与用户共享密码,从而破坏了锁定字段的全部目的。

这是上面描述的代码。任何让我更接近的东西都会非常感激:

(function() {
  // Prefix for group field names. Change to match what you want to use.

  // Rename the fields you want to lock to match this prefix (e.g., "PRIV.NAME")

  var f_prefix = "PRIV";

  // Your chosen password goes here

  var pw = "1234";

// Get a reference to the first field in the group

  var f = getField(f_prefix).getArray()[0];



  //Determine new readonly state, which is the opposite of the current state

  var readonly = !f.readonly;

  var readonly_desc = readonly ? "lock" : "unlock";



  //Prompt user for the password

  var resp = app.response({

    cQuestion: "To" + readonly_desc + "the fields, enter the password:",

    cTitle: "Enter password",

    bPassword: true,

    cLabel: "Password"

  });
  switch (resp) {

    case pw:

      getField(f_prefix).readonly = readonly;

      app.alert("The fields are now " + readonly_desc + "ed.", 3);

      break;

    case null: // User pressed Cancel button

      break;

    default: // Incorrect password

      app.alert("Incorrect password.", 1);

      break;

  }


})();

您不能在浏览器中执行此操作,您需要对表单和密码进行服务器验证,否则很容易从浏览器发送表单。

在这里查看代码示例, validatePassword 假设向服务器发出请求 密码验证:

https://playcode.io/280470?tabs=console&style.css&output