决定在运行时使字段只读的编辑组件

Deciding on an edit component that makes fields readonly on runtime

本文关键字:编辑 组件 只读 字段 运行时 决定      更新时间:2023-09-26

我正在用Javascript制作iOS应用程序。问题是,目前在我的代码中有很多if else条件,根据文档的状态使输入字段可编辑和不可编辑。我想摆脱这种重复的代码,因此认为将此代码分离到另一个文件,然后做一个要求。我在每个输入元素上分配一个自定义属性,然后将元素的Id、状态和是否应该为只读的标志传递给组件。这是正确的做法吗?示例:这在我的代码中经常发生:

function onGetItemsSuccess(result)
  if(result.status == 2){   
    $("#inpPartnerName").attr('readonly',true);     
  }
  if(result.status == 5){   
    $("#inpMfgNo").attr('readonly',false);      
  }
}
function onGetAccountDetailsSuccess(result){
   if(result.status == 1){  
     $("#inpQuantity").attr('readonly',true);       
   }    
}

您可以创建仅具有一般验证功能的文件,例如Helper或Utility文件。例如

validation.js:
function validate(field,validationtype){
}
working.js:
Ti.include('validation.js');
// here you can access the validate method.

可以是一个解

我喜欢:在Utility.js

function SetFieldReadability(selector, status){

var itemDetails = {
    modelName : {
        visibility : 'visible',
        readOnly : {
                1 : true, // Approved
                2 : false, // Draft
                3 : false, 
                5 : true    
            },
        isMandatory : false
    },
    description : {
        visibility : 'hidden',
        readOnly : {
                1 : false,
                3 : false,
                5 : true    
            },
        isMandatory : true          
    }
};
var attr = selector.attr('elemName');
    if(itemDetails[attr]){
        var isReadOnly = itemDetails[attr].readOnly[status];
        var isVisible = itemDetails[attr].visibility;
        selector.attr('readonly',isReadOnly);           
        selector.css('visibility',isVisible);
    }           
}

And in my working.js

 SetFieldReadability($('#inpModelName'), 1);