Пользователь, чтобы установить пароль, нажмите, чтобы заблокировать / разблокировать заполненную форму - PullRequest
1 голос
/ 02 апреля 2019

Я хочу создать форму, которая позволит пользователю заблокировать свои соответствующие поля, а также снова разблокировать их, если им потребуется изменить или обновить какую-либо информацию.Затем форма должна быть отправлена ​​обратно в компанию, где она заполнена, но компания не должна иметь возможность писать / редактировать поля ввода пользователя.

Наиболее близким решением, с которым я столкнулся, является сценарий, который требует от пользователя ввода пароля при нажатии кнопки, и этот пароль затем блокирует / разблокирует форму.Однако пароль должен быть установлен пользователем, в идеале, при первом нажатии кнопки.В настоящее время это уже определено в сценарии, что означает, что компании придется поделиться паролем с пользователем, отказавшись от цели блокировки полей.

Это код, описанный выше.Все, что приближает меня, очень ценится:

(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 Ответ

1 голос
/ 02 апреля 2019

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

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

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

...