테스트 사이트 - 개발 중인 베타 버전입니다

가변 폼 액션 접근성 확보하기

· 14년 전 · 1924 · 1
가변 폼 액션 상당히 많이쓰고있습니다.
필요에 따라 Form의 Action을 바꿔서 쓰는 방식인데 코드도 그리 복잡한건 아니라서
왠만한 브라우저에서는 호환됩니다만... 비스크립트 환경에선 접근성 확보가 어렵습니다.

이건 제가 쓰고있는 방법입니다.
비스크립트 환경 코딩에 관심있으신 분있으시다면 함 읽어보시길 바랍니다.

* 기존 방식
<script type="text/javascript"> 
function OnSubmitForm() 

    if(document.pressed == 'Insert') 
    { 
        document.myform.action ="insert.html"; 
    } 
    else if(document.pressed == 'Update') 
    { 
        document.myform.action ="update.html"; 
    } 

    return true; 
}

</script>
<form name="myform" onsubmit="return onsubmitform();"> 
<input type="submit" name="operation" onclick="document.pressed=this.value" value="insert" /> 
<input type="submit" name="operation" onclick="document.pressed=this.value" value="update" /> 
</form>


- 자바스크립트로 action 값 임의 변경, 기능 변화 클라이언트(브라우저)에서 처리

* 접근성 향상 방식
<form id="form" method="post" action="url">
   <div>
   이 항목에
   <select name="name">
      <option>작업1</option>
      <option>작업2</option>
      <option>작업3</option>
   </select>을 진행합니다. <noscript><input type="submit" value="확인" /></noscript>
</div>
</form>
- Action은 변화없고 자바스크립트에서 셀렉트 값 변경 후 submit 시킴, 기능 변화 서버에서 처리
- 이 경우 스크립트 사용시 셀렉트 박스는 스타일시트로 숨기는 등의 방법을 이용함.

이상 별거아닌 작은 팁이였습니다... ㅎㅎ;;

* 성원에 힘입어... 스크립트 하나 추가해드립니다.
선택자-스타일선택자(?)-display-none 의 방식으로 가면 됩니다.
- normal: getElementById('id').style.display = "none";
- jquery: $("selector").css("display", "none");
이런 식으로 스크립트 사용 시 스타일을 변경해서 안보이게하면 됩니다.
(스크립트 사용하지 않을 시 기본적으로 보이게 하기위함)

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

짧게 작성돼서 그런데, 굉장히 중요한 글입니다. 추천x10

제 경우엔 select 쪽은 CSS가 아니라 JavaScript에서 숨겨줍니다. 그래야 JavaScript disable 환경에서도 단일 작업으로 고정되는 일을 피할 수 없으니까요.

게시글 목록

번호 제목
3182
3171
3165
3163
14999
14998
14991
14984
14982
14979
14978
14977
3155
14976
14963
14960
14957
3151
3143
14951
3135
3132
14948
14941
29815
14939
14936
14935
3119
3113
14933
14929
3110
14928
14923
14921
3091
3087
3078
26068
3067
24252
14918
3061
3059
3053
14915
3049
14912
14911
14909
3040
3033
3027
3022
14908
24246
14905
3015
14904
14899
3007
14884
24241
3001
2997
14880
2991
2984
14879
2975
24232
14872
2970
24231
2967
2958
14864
2952
14858
24230
14850
2950
14848
14846
14845
14839
2944
2932
14833
14832
14830
2927
14826
26056
2921
2911
14824
2906
2889