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

Check if at least one form field has been filled

为了检查是否至少有一个表单字段已经填写,除其他解决方案外,我正在考虑以下解决方案:

 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 并在控制器中调用该方法;类似于:

//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
}

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

我会说,您的 util 方法应该 return 像

这样的布尔值
//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
}