2013-05-22 1 views
1

XPage에서 특정 라디오 단추를 눌렀을 때 일부 필드를 지우려면 어떻게해야합니까?Xpage에서 필드를 지우시겠습니까?

필드가 패널에 있습니다. 그 패널의 바깥쪽에는 라디오 버튼이 있습니다. 라디오 버튼의 onChange에서 나는 변수를 viewScope 변수로 변경하고 패널을 부분적으로 새로 고침하여 사라지게합니다. 이 작동합니다. 필드를 비워 둘 수 있기를 원합니다. 그렇지 않으면 사용자가 제출할 때 값이 저장됩니다.

+0

, 그냥 필드에 바인딩하지 마십시오. 권리? –

답변

1

onchange 이벤트의 필드를 수정하고 변경할 영역을 새로 고칠 이벤트를 추가하십시오.

<xp:modifyField  
var="document1" 
name="FIELDNAME" 
value=""> 
</xp:modifyField> 
+0

그러나 사용자가 특정 필드에 데이터를 저장하지 못하게하려면 IMHO를 사용하지 않도록 설정하거나 대신 해당 필드를 읽는 것이 좋습니다. readonly 속성에서 계산 된 것과 같이 @Contains (getComponent ("COMPONENTID"). getValue(), "VALUE") 부분 새로 고침에서 영역을 새로 고치면 해당 필드가 읽기 전용이됩니다. 나는이 접근법이 사용자 관점에서 더 낫다고 생각한다. 나는 특정 영역 (패널, 테이블 등)의 모든 것을 문서가있는 상태로만 읽을 수있는 워크 플로우 앱을 가지고있다. 비슷한 접근법. –

+3

구성 요소에 묻지 말고 데이터를 요청하십시오. –

+2

안녕하세요, 모든 Gallant는 Goofus가 필요합니다. 예, 나는 그 게시물을 읽었으며, 나쁜 접근법을 들었다. 내 애플 리케이션 중 일부를 수정해야 ... 우리는 여기 upvotes 전화합니까? have one ... –

11

modifyField 간단한 작업의 SSJS 상당 문서 데이터 소스의 setValue 방법; 예를 들어 :

currentDocument.setValue("fieldName", null);

누군가가 대신하지 ... getComponent("someId").setValue(null)를 호출 할 것을 요구합니다. 언뜻보기에는 작동하지만 대상 요소가 반복 제어이지만 이벤트 구성 요소가 반복 밖에있는 경우에는 효율성이 낮고 약해서 작동하지 않습니다. 항상 데이터 소스를 직접 업데이트하십시오. 데이터 소스에 바인딩 된 모든 구성 요소는 변경 사항을 자동으로 선택합니다.

0

를 사용하여 클라이언트 측의 onChange 실행이 도장 년대의 어느 곳 < parentID> 내에서 컨테이너의 RadioButton 또는을 radioGroup의 ID가이다 : 당신이 원하지 않는 경우 값이 저장

dojo.query("*[type=radio]:checked",dojo.byId(parentID)).forEach(function(node, index, nodelist){ 
      node.checked=false; 
     }); 
dojo.query("*[type=checkbox]:checked",dojo.byId(parentID)).forEach(function(node, index, nodelist){ 
      node.checked=false; 
     }); 
dojo.query("input",parentID). 
    forEach(function(node, index, nodelist){ 
     node.value = ""; 
    }) 
//reset(
관련 문제