2013-06-17 6 views
1

나는 Dynamics CRM 2011 양식에 일련의 다양한 필드가 있습니다. 나는 다양한 검사를 수행하는 자바 스크립트를 사용하고 있습니다. 이 중 하나는 필드에 값이 할당 될 때까지 사용자가 양식을 저장하지 못하도록 특정 필드를 "필수"로 설정하는 것입니다. (필수 항목으로 설정)라디오 버튼 유효성 검사

그러나 일부 필드는 라디오 버튼입니다. 위의 코드가 올바르게 작동하지 않는 것 같습니다. 나는 "아니오"의 예/아니오 선택이 어쨌든 null로 간주된다고 생각합니다. 즉, "아니오"를 선택하면 "FieldA1에 값을 입력해야합니다."라는 메시지가 나타납니다.

아무도 해결할 수 없으므로 "아니오"를 사용할 수 있습니까? 감사합니다. .

필수 필드를 확인하려면 양식의 특정 필드가 완성 된 경우 사용자는 양식 하단의 마지막 옵션으로 라디오 버튼을 선택합니다 ("이 양식을 완료로 표시 하시겠습니까?"). 예를 선택하면, 메시지가 막아 방지 나타납니다, 양식이 완료된 것으로 표시되어

function FormSaveAlert() 
{ 
    if (Xrm.Page.getAttribute("new_formcompleted").getValue() == true) 
    { 
     if (confirm("Are you sure this form is complete? \n Once saved, this form cannot be modified again.") == false) 
     { 
      Xrm.Page.getAttribute("new_formcompleted").setValue(false); 
     } 
     else 
     { 
      var HF1 = Xrm.Page.getAttribute("new_hf1field"); 
      HF1.setRequiredLevel("required"); 
      if (HF1.getValue()==null) {HF1.setValue(false);} 
      //Xrm.Page.data.entity.attributes.get("otherfield").setRequiredLevel("required"); 
     } 
    } 
} 

경우와 특정 필드는 필수입니다 만, null이 포함되어 다음과 같은 기능이 몇 가지 기본적인 검사를 수행합니다. 역학의 기본 메시지 - "당신은 HF1에 대한 값을 제공해야합니다"

+0

이 함수는 onsave 이벤트 내부 또는 onchange 이벤트 내부에서 호출됩니까? 그리고 여전히 닫는 중괄호가 누락되었습니다 –

+0

중괄호가 수정되었습니다 - FormLoad 중에 호출 됨 – GrumP

+1

코드가 정상입니다. 'new_formcompleted'가'Yes' 인 경우에만 실행되고, 확인 상자가 팝업 된 후 사용자가'Cancel'을 클릭하면'new_formcompleted'가'No'로 설정되고, 사용자가'Ok'을 클릭하면'new_hf1field' 필드가됩니다 값이 비어 있거나 내 대답에 설명 된 버그가 발생하는 경우에만 필수이고 값은 '아니요'로 설정됩니다. –

답변

1

나는 테스트를했고, 나는 null에이 옵션을 설정하면 나는 문제를 복제 할 수 있습니다 내가 No 선택한 후, getValue 기능은 null 대신 false 반환 .

는 (I은 구글 크롬을 사용하지만, 그것 때문에 반드시 지원되는 사용자 정의 모든 브라우저에서 작동합니다) 요구 사항에 내부

만약이 가능합니다 (쇼 No 기본값으로), 나는하여 기본 값을 적용하는 것이 좋습니다 이 예제와 같은 코드 : 필수 필드에 값이 있어야합니다

var fieldA1 = Xrm.Page.getAttribute("new_FieldA1"); 
fieldA1.setRequiredLevel("required"); 
if (fieldA1.getValue()==null) { fieldA1.setValue(false); } 
+0

안녕하세요, 귀하의 예를 들어 주셔서 감사합니다.원래 질문에서 필드를 어디에 체크하고 있는지 추가했습니다. 이 기능이 적합한 지 알 수 있습니까? 나는 지금 그것을 시험하고있다. 그러나 아직 운이 없다. – GrumP

+0

@ GrumP 게시물을 수정하고 코드를 수정 해주실 수 있습니까? 당신이 닫는 중괄호를 놓치고있는 것 같아요, 당신이 원하는 것을 설명하는 경우 더 낫다, 감사합니다 –

+0

나는 이것이 더 분명 희망합니다. 감사! – GrumP

0

하지만, 비트 필드는 항상 값을 가지고, 그래서 실제로는 그렇지 않은 것처럼 보이더라도 값을 포함하는 것으로 볼 수 기대.

x_formcompleted에 대한 onChange 코드도 게시 할 수 있습니까? 그 이유는 이것이 오류를 유발하는 것이기 때문입니까?

두 개의 입력란이 있습니다. 입력란이 상호 작용하는 방식을 볼 수 없습니다.

분명히 단 하나만 필요합니다. 확인을 요청하면 확인하고 마음이 바뀌면 재설정됩니다.

yes/no/null 값을 가진 옵션 세트 사용 (이 경우 내장 전역 옵션이 있음)을 고려하십시오. Null ("할당되지 않음")을 기본값으로 만들고 필수 필드를 만듭니다 (스크립트가 아니라 필드 속성에만 항상 사용).

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. :) fucntion FormSaveAlert 오류를 트리거하는 것으로 나타납니다. x_formcompleted에 대한 라디오 버튼을 선택할 때. – GrumP