apex : selectList 등으로 브라우저의 필수 확인

3168 단어 SalesforceVisualforce
<apex:page>docType="html-5.0" 를 붙이지 않은 경우를 붙였을 경우, 브라우저에서도 필수 체크가 행해집니다만, 일부의 표준 컴퍼넌트는 required 속성이 렌더링 되지 않고, 필수 체크가 작동하지 않는 것 같습니다 (서버측 확인은 이루어집니다).



위 그림과 같이 아래의 표준 컴포넌트는 브라우저에서 필수 체크가 되어 있지 않습니다.
  • inputCheckbox (서버 측의 필수 체크도 행해지지 않는다)
  • inputFile
  • inputHidden (원래 input [type = hidden]이 required를 지원하지 않는다)
  • inputSecret
  • selectList
  • selectCheckboxes
  • html-require='true' 를 사용할 수 없습니다.

    구성 요소 의 "required"속성을 덮어 쓸 수 없습니다.

    inputCheckbox, inputFile, inputSecret, selectList는 아래와 같이 javascript에서 required 속성을 붙이는 것으로 브라우저에서 필수 체크가 행해지게 됩니다.rerender 에서 입력 양식을 다시 그리는 경우 <script>도 다시 그리기 범위에 포함되어야 합니다. 포함하지 않으면 다시 그린 후에 required 속성이 사라집니다.
    <apex:form>
      <apex:selectList value="area" styleClass="form-required">
        <apex:selectOption itemValue="AP" itemLabel="アジア太平洋"/>
        <apex:selectOption itemValue="EU" itemLabel="ヨーロッパ"/>
        <apex:selectOption itemValue="NA" itemLabel="北アメリカ"/>
      </apex:selectList>
    </apex:form>
    
    <script>
      window.onload = function(){
        Array.from(document.getElementsByClassName('form-required')).forEach(element=>{element.required=true;};
      }
    </script>
    

    좋은 웹페이지 즐겨찾기