Пользователь для установки пароля при нажатии для блокировки / разблокировки заполняемой формы

#javascript #acrobat

#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:

вы не можете сделать это в браузере, вам потребуется проверка сервером формы и пароля, иначе было бы легко отправить форму из браузера.

смотрите здесь пример того, на что будет похож код, validatePassword предположим, чтобы отправить запрос на сервер для проверки пароля:

https://playcode.io/280470?tabs=consoleamp;style.cssamp;output