2010-02-25 6 views
2

저장 작업을 추가/편집하고 중지하는 동안 목록 항목의 필드를 확인하고 사용자가 해당 페이지 자체에서 작성한 오류 정보를 제공하려고합니다.공유 목록의 양식 필드의 유효성을 검사하려면 어떻게해야합니까?

예를 들어, 다른 필드의 특정 상태를 기반으로 저장하기 전에 사용자가 필드를 몇 개 남겨 두지 않도록하려면이 필드를 필수 필드로 만들 수 없습니다.

답변

3

PreSaveAction을 사용하십시오.

PreSaveAction이라는 자바 스크립트 함수를 페이지에 추가하십시오. 사용자 정의 목록 템플릿을 만들고 EditForm 및 NewForm으로 사용할 aspx 페이지를 수정할 수있는 것이 가장 좋으며, 그렇지 않으면 내용 편집기 웹 파트를 시도하거나 마스터 페이지)를 열고 모든 사용자 정의 유효성 검사를 수행하십시오.

예를 들어, 우리는 100 %와 동일한 3 % 필드가있는 프로젝트에서 사용했습니다. 나는 다음과 같은 자바 스크립트를 사용했고 그것은 훌륭하게 작동했다 :

function getTagFromIdentifierAndTitle(tagName, identifier, title) { 
    var len = identifier.length; 
    var tags = document.getElementsByTagName(tagName); 
    for (var i = 0; i < tags.length; i++) { 
     var tempString = tags[i].id; 
     if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) { 
      return tags[i]; 
     } 
    } 
    return null; 
} 

function PreSaveAction() { 
    var top = getTagFromIdentifierAndTitle("input", "TextField", "Top %"); 
    var middle = getTagFromIdentifierAndTitle("input", "TextField", "Middle %"); 
    var bottom = getTagFromIdentifierAndTitle("input", "TextField", "Bottom %"); 
    var valid = (100 == parseInt(top.value) + parseInt(middle.value) + parseInt(bottom.value)); 
    if (!valid) { 
     alert("Top %, Middle %, and Bottom % must equal 100% when added."); 
    } 
    return valid; 
} 
+0

안녕하세요, 좋은 소식. 이것은 좋은 실행 가능한 해결책으로 보이고 시도를 줄 것입니다. – sankar

+0

나는이 JS를 들고있는 스크립트 태그를 어디에 넣어야 하는지를 알아내는 악마가있다. [이 소스] (http://social.msdn.microsoft.com/Forums/en/sharepointcustomization/thread/345b9083-ab1d-4c9c-908b-6c3e6498b89e)는 ' 요소가 나에게 도움이되었습니다. – CrazyPyro

+0

필드의 유형이 checkbox로 허용되는 여러 값을 선택할 수있는 선택 필드 인 경우 동일한 유효성 검사를 수행하는 방법은 무엇입니까? 사용자가 선택한 값에 액세스하고 다른 정보 필드와 비교하여 오류 정보와 유사한 경고를 표시해야합니다. chckbox2를 선택하면 tetxbox2가 비어서는 안됩니다. 그것은 오직 사용자가 form.Any 아이디어를 저장할 수있는 채워 져야 어떻게 이것을 구현하는 방법? – SaMolPP

2

사용자 정의 필드 컨트롤을 만들어야이 작업을 수행 할 수 있습니다. 그러나 일단 사용자 정의 경로를 시작하면 고려해야 할 몇 가지 옵션이 있습니다.

사용자 지정 asp.net 양식을 만들고 목록에 게시하거나 InfoPath 양식을 고려하도록 코딩하는 것이 좋습니다.

관련 문제