Programming

비활성화 된 입력 값은 제출되지 않습니다

procodes 2020. 5. 7. 21:29
반응형

비활성화 된 입력 값은 제출되지 않습니다


이것이 Firefox에서 Firebug가 찾은 것입니다.

다른 브라우저에서도 동일합니까?

그렇다면 그 이유는 무엇입니까?


예, 모든 브라우저는 비활성화 된 입력을 읽기 전용이므로 제출해서는 안됩니다.

자세한 정보 (섹션 17.12.1)

속성 정의

disabled [CI] 폼 컨트롤로 설정하면이 부울 속성은 사용자 입력 컨트롤을 비활성화합니다. 설정하면 disabled 속성이 요소에 다음과 같은 영향을 미칩니다.

  • 비활성화 된 컨트롤에는 포커스가 없습니다.
  • 탭 탐색에서 비활성화 된 컨트롤을 건너 뜁니다.
  • 비활성화 된 컨트롤은 성공할 수 없습니다.

다음 요소는 disabled 속성을 지원합니다 : BUTTON, INPUT, OPTGROUP, OPTION, SELECT 및 TEXTAREA.

이 속성은 상속되지만 로컬 선언은 상속 된 값보다 우선합니다.

비활성화 된 요소가 렌더링되는 방법은 사용자 에이전트에 따라 다릅니다. 예를 들어, 일부 사용자 에이전트는 메뉴 항목, 단추 레이블 등을 "회색으로 비활성화"했습니다.

이 예에서는 INPUT 요소가 비활성화되어 있습니다. 따라서 사용자 입력을 수신 할 수 없으며 해당 값을 양식과 함께 제출하지 않습니다.

<INPUT disabled name="fred" value="stone">

노트. disabled 속성의 값을 동적으로 수정하는 유일한 방법은 스크립트를 사용하는 것입니다.


disabled 입력은 데이터를 제출하지 않습니다.

readonly속성을 사용하십시오 .

<input type="text" readonly />

여기에 소스


그것이 W3C 사양에서 말하는 것이므로 제출되지 않습니다 .

17.13.2 성공적인 통제

성공적인 제어는 제출에 "유효"합니다. [한조각]

  • 비활성화 된 컨트롤은 성공할 수 없습니다.

다시 말해, 사양에 따라 비활성화 된 컨트롤은 유효하지 않은 것으로 간주되어 제출해서는 안됩니다.


비활성화 된 것을 흉내 내기 위해 세 가지를 사용할 수 있습니다.

  1. HTML : readonly속성 (입력에있는 값을 양식 제출에 사용할 수 있습니다. 또한 사용자는 입력 값을 변경할 수 없습니다)

  2. CSS : 'pointer-events':'none'(사용자가 입력을 클릭하지 못하도록 차단)

  3. HTML : tabindex="-1"(사용자가 키보드 입력으로 이동하지 못하도록 차단)


Disabled통제는 성공할 수 없으며 성공적인 통제는 제출에 "유효"합니다. 이것이 비활성화 된 컨트롤이 양식과 함께 제출되지 않는 이유입니다.


읽기 전용 속성에서도 여전히 선택 컨트롤을 클릭 할 수 있음

여전히 컨트롤을 비활성화하고 싶지만 값을 게시하려는 경우. 숨겨진 필드를 만드는 것을 고려할 수 있습니다. 컨트롤과 동일한 값으로

그런 다음 선택 변경시 jquery를 만듭니다.

$('#your_select_id').change(function () {
    $('#your_hidden_selectid').val($('#your_select_id').val());
});

참고 URL : https://stackoverflow.com/questions/1355728/values-of-disabled-inputs-will-not-be-submitted

반응형