首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Vaadin8表单中验证TextField

如何在Vaadin8表单中验证TextField
EN

Stack Overflow用户
提问于 2017-08-25 15:49:52
回答 1查看 1.7K关注 0票数 0

我有一个系统,我想迁移到VaAdin8。我想请求关于如何验证基于正则表达式的TextField的帮助。我有适用于Vaadin 7但不适用于Vaadin 8的代码,这可以进一步解释我的问题。下面这样的代码样例将非常受欢迎。

代码语言:javascript
复制
TextField txtFirstname = new TextField(); 
txtFirstname.setInputPrompt("Enter the firstname e.g. John or Jane");
txtFirstname.addValidator(new RegexpValidator("^[a-zA-Z _\\-'\" ]{3,25}$", "Invalid FirstName"));
txtFirstname.addBlurListener(new BlurListener() {           
    @Override 
    public void blur(BlurEvent event) { 
        //txtFirstname.validate(); 
        if(txtFirstname.isValid()==false) 
        { 
            txtFirstname.setValidationVisible(true); 
            //txtFirstname.focus(); 
        } 
        else if(txtFirstname.isValid()==true)
            { 
                    txtFirstname.setValidationVisible(false); 
            } 
        } 
    }); 
EN

回答 1

Stack Overflow用户

发布于 2017-08-25 17:21:34

我在Vaadin上做了一些工作,但我没有看过'Validator‘,所以我会提出一个更简单的方法:

代码语言:javascript
复制
TextField txtFirstname = new TextField(); 
txtFirstname.setInputPrompt("Enter the firstname e.g. John or Jane");
String pattern = "^[a-zA-Z _\\-'\" ]{3,25}$";

txtFirstname.addBlurListener(new BlurListener() {           
    @Override 
    public void blur(BlurEvent event) { 

        if(!txtFirstname.getValue().match(pattern)){  //<- basic string check
            txtFirstname.setValidationVisible(true); 
            //txtFirstname.focus(); 
        } 
        else if(txtFirstname.isValid()==true){ 
             txtFirstname.setValidationVisible(false); 
        } 
   } 
}); 

并且使用!booleanValue而不是booleanValue==false

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45876693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档