비활성화 된 입력 확인란을 POST / 제출하는 방법은 무엇입니까? 조건에서 비활성화 해야하는 확인란이 있습니다.

특정 조건에서 비활성화 해야하는 확인란이 있습니다. HTTP가 비활성화 된 입력을 게시하지 않는 것으로 나타났습니다.

그 문제를 어떻게 해결할 수 있습니까? 비활성화 된 경우에도 입력을 제출하고 비활성화 된 상태를 유지합니까?



답변

업데이트 : READONLY확인란에서 작동하지 않습니다

사용할 수 disabled="disabled"있지만이 시점에서 확인란의 값은 값으로 표시되지 않습니다 POST. 전략 중 하나는 동일한 양식 내에서 확인란의 값을 유지하는 숨겨진 필드를 추가하고 해당 필드에서 값을 다시 읽는 것입니다

단순히 변경 disabledreadonly


답변

나는 그 문제를 해결했다.

readonly="readonly"태그가 작동하지 않기 때문에 (다른 브라우저를 사용해 보았습니다) disabled="disabled"
대신 사용해야 합니다. 그러나 귀하의 확인란의 가치는 게시되지 않습니다 …

내 해결책은 다음과 같습니다.

“읽기 전용” 을 얻으려면 모양과 POST 확인란 값을 동시에 확인란 과 이름과 값이 같은 숨겨진 “입력”을 추가하십시오 . 확인란 옆이나 같은 <form></form>태그 사이에 보관해야 합니다.

<input type="checkbox" checked="checked" disabled="disabled" name="Tests" value="4">SOME TEXT</input>

<input type="hidden" id="Tests" name="Tests" value="4" />

또한, 나중에 알려 readonly="readonly", readonly="true", readonly="",주거나 READONLY해결하지 않을 것입니다! 나는 그것을 알아 내기 위해 몇 시간을 보냈다!

이 참조는 또한 관련이 없습니다 (아직 더 이상 알지 못할 수도 있습니다).
http://www.w3schools.com/tags/att_input_readonly.asp


답변

JQuery를 사용하는 것이 좋으면 양식을 제출할 때 disabled 속성을 제거하십시오.

$("form").submit(function() {
    $("input").removeAttr("disabled");
});

답변

이 방법으로 처리 할 수 ​​있습니다 … 각 확인란마다 동일한 name속성을 가진 숨겨진 필드를 만듭니다 . 그러나 숨겨진 필드의 값을 테스트 할 수있는 기본값으로 설정하십시오. 예를 들어 ..

<input type="checkbox" name="myCheckbox" value="agree" />
<input type="hidden" name="myCheckbox" value="false" />

양식을 제출할 때 확인란을 선택하면 해당 양식 매개 변수의 값은

"agree,false"

확인란을 선택하지 않으면 값은

"false"

“false”대신 모든 값을 사용할 수 있지만 아이디어를 얻습니다.


답변

<input type="checkbox" checked="checked" onclick="this.checked=true" />

나는 “비활성화 된 입력 확인란을 POST / 제출하는 방법”이라는 문제에서 시작했습니다. 그리고 내 대답에서 나는 주석을 건너 뛰었습니다. “확인란을 비활성화하려면 반드시 접두사 값을 선택해야합니다 (확인 또는 선택하지 않음). 또한 사용자가 알고 있어야합니다 (그렇지 않으면 숨겨진 유형을 사용해야합니다. 확인란이 아님) ‘. 내 대답에서 나는 항상 확인란을 선택하고 코드는 이런 식으로 작동한다고 가정했습니다. 우리가 그 ckeckbox를 클릭하면 그것은 영원히 점검되고 그 값은 게시 / 제출됩니다! 같은 방법으로 checked = “checked”없이 onclick = “this.checked = false”를 작성하면 (참고 : 기본값은 선택 취소됨) 영구적으로 선택 해제되며 해당 값은 POSTED / 제출되지 않습니다!.


답변

CSS 클래스를 작성하십시오.

.disable{
        pointer-events: none;
        opacity: 0.5;
}

비활성화 된 속성 대신이 클래스를 적용하십시오.


답변

가장 간단한 방법은 다음과 같습니다.

<input type="checkbox" class="special" onclick="event.preventDefault();" checked />

이렇게하면 사용자가이 확인란을 선택 취소 할 수 없으며 양식을 제출할 때 해당 값을 계속 제출합니다. 사용자가이 확인란을 선택할 수 없게하려면 제거를 선택하십시오.

또한 자바 스크립트를 사용하여 특정 조건이 충족되면 클릭을 지울 수 있습니다 (이후에 발생하는 경우). 여기 내가 의미하는 것을 보여주는 불쾌한 바이올린이 있습니다. 완벽하지는 않지만 요점을 얻습니다.

http://jsfiddle.net/vwUUc/