2016-09-21 3 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 
)};