在install4j可配置表单中,是否可以在文本字段中输入某个值后立即启用禁用的“下一步”按钮?

在install4j可配置表单中,是否可以在文本字段中输入某个值后立即启用禁用的“下一步”按钮?,install4j,Install4j,在可配置表单中,我可以使用预激活脚本pesent在屏幕上禁用当前表单的“下一步”按钮,通过使用 context.getWizardContext().setNextButtonEnabled(false); 但我需要在用户在用户名和密码文本字段中输入一些值后立即启用它。我已尝试通过调用此方法启用它 context.getWizardContext().setNextButtonEnabled(true); 从用户输入->相应文本字段的验证表达式。但是,即使我不能实现,我想要的。在inst

在可配置表单中,我可以使用预激活脚本pesent在屏幕上禁用当前表单的“下一步”按钮,通过使用

context.getWizardContext().setNextButtonEnabled(false); 
但我需要在用户在用户名和密码文本字段中输入一些值后立即启用它。我已尝试通过调用此方法启用它

context.getWizardContext().setNextButtonEnabled(true); 
从用户输入->相应文本字段的验证表达式。但是,即使我不能实现,我想要的。在install4j中是否有这样做的可能性

这是我在验证表达式中输入的代码:

String username = context.getVariable("userName").toString().trim();
String password = context.getVariable("password").toString().trim();
if((username.equals(null)) || (username.isEmpty())) {
context.getWizardContext().setNextButtonEnabled(false);
}
else if((password.equals(null)) || (password.isEmpty())) {
context.getWizardContext().setNextButtonEnabled(false);
}
else {
context.getWizardContext().setNextButtonEnabled(true); 
}
return true;

我希望这段代码不会执行,因为我输入了验证表达式。但是必须在哪个位置插入代码,以便用户在用户名和密码字段中输入某个值时,该表单的下一个按钮将被启用?

只有当用户单击“下一步”按钮时,才会执行屏幕的验证表达式。“文本字段”表单组件有两个先前执行的附加脚本:

  • “键验证表达式”属性->在按下单个键后调用

  • “输入验证表达式”属性->在文本字段失去焦点时调用


当用户仍在密码文本字段中输入某些值时。在“Key validation expression”属性中,如果我尝试获取当前字段的输入值,即用户尚未使用字符串password=context.getVariable(“password”).toString().trim()完成密码字段的输入;现在在password字段中,我是否将获得直到用户输入的内容或null(只有在焦点离开文本框后才保存到上下文对象时才会发生这种情况)?感谢您的回复…尽管在“Key validation expression”属性中输入上述代码后,我无法启用禁用的Next按钮!当用户仍在密码文本字段中输入某些值时。在“Key validation expression”属性中,如果我尝试获取当前字段的输入值,即用户尚未使用字符串password=context.getVariable(“password”).toString().trim()完成密码字段的输入;现在在password字段中,我是否将获得直到用户输入的内容或null(只有在焦点离开文本框后才保存到上下文对象时才会发生这种情况)?当用户单击“下一步”时,变量被保存。如果要更早地保存它们,请在脚本中调用
formEnvironment.saveFormComponents()
。在“密钥验证表达式”中,文本字段组件的文本可通过“text”变量获得。@Ingo Kegel感谢您提供的信息。。。最后,我用你们宝贵的投入做到了这一点。