2017-12-08 25 views
0

alpacajs를 사용하여 HTML 양식을 렌더링하고 있습니다. 내 요구 사항은 확인란을 기반으로 특정 필드를 표시하는 것입니다. 내 양식에 세 개의 확인란이 있으며 확인란 중 하나라도 선택되어 있으면 일부 필드를 표시하려고합니다.여러 종속성에 필드를 바인딩하여 알파카의 조건을 기반으로 동일한 필드를 표시하는 방법

나는 conditional dependencies에 관한 알파카 문서를 훑어보고 내 문제에 대한 해결책을 찾지 못했습니다. 다른 필드를 사용하여 같은 필드를 만들면이 문제를 해결할 수 있지만 그 차이는 dry principle입니다.

내 코드는 다음과 같습니다.

"myCheckBox1": { 
    "type": "boolean" 
}, 
"myCheckBox2": { 
    "type": "boolean" 
}, 
"usernameField": { 
    "label": "Username *", 
    "order": 6, 
    "type": "string" 
    "disallowOnlyEmptySpaces": true, 
    "showMessages": false, 
    "disallowEmptySpaces": true, 
} 

myCheckBox1 또는 myCheckBox2 중 하나를 선택하면 usernameField를 표시하려고합니다. 조건부 종속성을 표시하도록 스키마가 변경되었습니다.

"dependencies": { 
    "usernameField": [ 
    "myCheckBox1" 
    ], 
    "usernameField": [ 
    "myCheckBox2" 
    ] 
} 

하지만, 그것은 myCheckBox2가 선택되어 있고 myCheckBox1을 고려하지 않는 경우에만 usernameField 표시됩니다 만 마지막으로 주어진 조건의 예를 고려한다. 또한 코드 아래 시도 :

"dependencies": { 
    "usernameField": [ 
    "myCheckBox1", "myCheckBox2" 
    ] 
} 

하지만은 and condition로 평가합니다. 서로 다른 종속성을 사용하여 동일한 필드를 표시하는 방법이 있습니까?

// schema 
"check": { 
    "title": "Select...", 
    "type": "string", 
    "enum": ["First", "Second"] 
}, 
... 
// options 
"check": { 
    "type": "checkbox" 
} 

그런 다음이 같은 조건 종속성을 사용합니다 : 당신이 다음과 같이 열거 형을 사용하여 체크 박스의 그룹을 사용하지 않는 이유는

답변

2

여기

"username": { 
    "dependencies": { 
     "check": [ 
      'First', // if First is selected 
      'Second', // if Second is selected 
      'First,Second' // if both First and Second are selected 
     ] 
    } 
} 

이를위한 작업 fiddle을합니다.

이것이 원하는 것이 아닌지 알려주세요.

+0

답변 해 주셔서 감사합니다. 또한 체크 된 체크 박스 아래에 텍스트 상자를 표시하는 방법이 있습니까? – cutteeth

+2

흠 Alpaca 표준에서는 그룹화 된 확인란을 사용했기 때문에 불가능하다고 생각합니다. 그룹화 된 확인란은 하나의 필드로 간주 할 수 있습니다. 하지만 생성 된 양식을 해킹하고 postRender 함수에서 jquery를 사용하여이 작업을 수행 할 수 있습니다. – vert3x