2016-08-04 55 views
1
ComboBox companyCity = new ComboBox(); 
companyCity.setUIID("TextField"); 
companyCity.addItem("Choose City"); 
for (Map<String, Object> entry : alacc.responseCity) { 
    String cityName = (String) entry.get("name"); 
    companyCity.addItem(cityName); 
} 

TextField companyPhone = new TextField(); 
companyPhone.setHint("Phone"); 

1)对于combobox,使用addConstraint(companyCity,new LengthConstraint(2))不起作用,因为它已经“选择城市”文本。我们有没有其他的限制,特别是对于组合框?Validator for comboBox and phn否

2)另外我必须验证电话号码。我已经使用addConstraint(companyPhone,新的RegexConstraint(phoneRegex,“必须是有效的电话号码”));但是phoneRegex在这里是什么? 我必须使用自己的正则表达式吗?例如final String phoneRegex =“^((\ d {3} - | \(\ d {3} \)\ s?)?\ d {3} - |^\ d {3}(\。)?\ d {3} \ 3)\ d {4} $“; 如果是这样,为什么它不被定义为默认的URL正则表达式,电子邮件正则表达式等? 3)当我使用“addConstraint(公司电话,新的RegexConstraint(phoneRegex,”必须是有效的电话号码“));”错误味精即。 “必须是有效的电话号码”不会出现在 文本字段中。如何显示错误消息?

回答

1
  1. 不需要您需要为组合框选择创建约束。

  2. 电话的复杂程度要比电子邮件的正确验证要复杂一些。我们没有一个体面的正则表达式版本。

  3. 使用setShowErrorMessageForFocusedComponent(true)

+0

三江源晒......但对于组合框,我不能做新LengthConstraint(2)因为我已经有“选择城市”。你能给我一些关于组合框的想法吗?我还有一个问题,该按钮被禁用,直到所有req。字段被填充。它造成了一点困惑。所以我想要的是将提交按钮的文本设置为“所有字段都是强制性的”,并且当所有字段填满并且按钮可点击时,如何将按钮文本更改为提交?我可以那样做吗? – beck

+0

“约束”是一个非常简单的2种方法的接口。只需重写isValid方法并检查组合。 –