检查是否至少填写了一个表单字段

时间:2017-10-16 11:56:28

标签: javascript extjs extjs5

要检查是否已填写至少一个forem字段,以及其他解决方案,我正在考虑以下解决方案:

 var form = Ext.ComponentQuery.query('#myform')[0];

 form.getForm().getFields().each(function(field) {
       var value = field.getRawValue();
       if(value !== ''){
            //submit form
        }else{
             //error message
        }
  });

由于我有几个需要填充至少一个字段的表单,我想在Util文件类中创建一个方法并在控制器中调用此方法;类似的东西:

//Class Util
testFields: function(form){
    form.getForm().getFields().each(function(field) {
        var value = field.getRawValue();
        if(value !== ''){
           ...
        }
    });
},

//controller 
if(MyApp.util.Util.testFields(form) !== ''){ //does not work
     //submit form
}else{
    //error message
}

这样的解决方案是否可行,或者更好的是获取控制器中每个字段的值而不进行迭代并测试它们是否为空?

1 个答案:

答案 0 :(得分:1)

我想说,你的util方法应该返回一个像

这样的布尔值
//Class Util
testFields: function(form){
    var result = false;
    form.getForm().getFields().each(function(field) {
        if(field.getRawValue()){  // at least one field needs to be filled out
           result = true;
        }
    });
    return result;
},

比你的控制器方法应该只测试

这样的形式
//controller 
if(MyApp.util.Util.testFields(form)){
     form.submit();
}else{
    //error message
}