用户在单击 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
假设向服务器发出请求
密码验证:
我想创建一个表单,允许用户锁定他们各自的字段,但如果他们需要修改或更新任何信息,也可以再次解锁。然后将表格发送回公司,在那里完成,但公司不应该 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
假设向服务器发出请求
密码验证: