2016-09-21 37 views
1

背景:达到某个状态后,用户不应该能够修改UI中表单域中的数据。通过控件数组筛选并操作它们

当UI达到此状态时,需要禁用的输入字段少于40个。

当前,实现是搜索所有可能的控件(数组为600)的数组,并且只有与条件中的控件的id不匹配才会被禁用。

element.getId()的示例将是“__xmlview2--SaveBtn”,“__xmlview2-Page-SaveBtn”。这些基本上都是控件的id。

//for each control that is not the following controls perform the logic within this statement. 

controls.forEach(function(element){ 
    if(element.getId().indexOf("Page-") == -1 && 
     element.getId().indexOf("ControlName1") == -1 && 
     element.getId().indexOf("ControlName2") == -1 && 
     element.getId().indexOf("ControlName3") == -1 && 
     element.getId().indexOf("ControlName4") == -1 && 
     element.getId().indexOf("ControlName5") == -1) { 

      //do the logic fr disabling fields here 
    )}; 

什么是最好的方式来写这个代码更清晰,这是显而易见的呢?你会怎么做?谢谢。

+1

请添加一些'element.getId()'的例子。 –

+1

编辑该问题以添加element.getId()的示例 – daredadevil

回答

1

我建议将字符串放入一个数组,然后再次检查Array#every

var items = ["Page-", "ControlName1", "ControlName2", "ControlName3", "ControlName4", "ControlName5"], 
    id = element.getId(); 

if (items.every(function (item) { return id.indexOf(item) == -1; })) { 
    // do the logic for disabling fields here 
)};