我有这个登录/注册应用程序。注册部分由两部分组成。 (带有2个选项卡的TabPanel)。第一个选项卡会检查电子邮件,如果它有效,则解锁第二个选项卡。第二个选项卡是实际注册表单的位置。
我想使用第一个标签中的电子邮件,作为第二个标签中的电子邮件,因此用户只能注册该电子邮件,因此不可编辑。 但问题是电子邮件在第二个标签中不可见。为什么会这样?
// variable declaration
private static String email;
// constructor
public RegisterViewImpl() {
Widget tabBar = createRegistrationForm();
tabPanel.add(tabBar);
initWidget(tabPanel);
}
private static Widget createRegistrationForm() {
TabPanel tabPanel = new TabPanel();
// Create the e-mail tab
Widget emailCheckerWidget = createEmailChecker();
tabPanel.add(emailCheckerWidget, RegistrationFormConstants.CHECK_EMAIL_TAB);
// Create the Personal Information Tab
Widget personalInformationWidget = createPersonalInformationWidget();
tabPanel.add(personalInformationWidget, RegistrationFormConstants.DETAILS_TAB);
...
}
private static Widget createEmailChecker() {
...
submitButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// this is how I save my email
email = emailBox.getText();
checkIfEmailExists(email);
emailBox.setText(null);
}
});
...
}
private static Widget createPersonalInformationWidget() {
...
// E-Mail Address
Label emailAddress = new Label("E-Mail Address");
final TextBox emailBox = new TextBox();
// this is how I want ot set it
emailBox.setText(email);
emailBox.setEnabled(false);
emailBox.setStyleName("fixed-input");
...
}
答案 0 :(得分:0)
您在用户输入其电子邮件之前创建表单。因此,您的表单不会显示它。用户点击提交按钮后应调用emailBox.setText(email);
。