用户点击即可设置密码以锁定/解锁可填写表格

时间:2019-04-01 21:47:40

标签: javascript acrobat

我希望创建一种表单,该表单允许用户锁定其各自的字段,但是如果他们需要修改或更新任何信息,则可以再次将其解锁。然后将该表格发送回完成的公司,但是公司不能写/编辑用户输入字段。

我遇到的最接近的解决方案是一些脚本,该脚本要求用户单击按钮时输入密码,然后此密码将锁定/解锁表单。但是,理想情况下,应该由用户在首次单击按钮时设置密码。当前,它已在脚本中确定,这意味着公司将不得不与用户共享密码,从而无法实现锁定字段的全部目的。

这是如上所述的代码。任何使我更接近的东西将不胜感激:

(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;

  }


})();

1 个答案:

答案 0 :(得分:1)

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

在此处查看代码示例, validatePassword应该向服务器发出请求 密码验证:

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