[jquery] jquery를 사용하여 드롭 다운을 읽기 전용으로 만드는 방법은 무엇입니까?

읽기 전용으로 만들기 위해 다음 문을 사용하고 있지만 작동하지 않습니다.

$('#cf_1268591').attr("readonly", "readonly"); 

나는 그것을 비활성화하고 싶지 않고 읽기 전용으로 만들고 싶습니다.



답변

$('#cf_1268591').attr("disabled", true); 

드롭 다운은 항상 읽기 전용입니다. 당신이 할 수있는 것은 그것을 비활성화하는 것입니다

양식으로 작업하는 경우 비활성화 된 필드는 제출되지 않으므로 숨겨진 필드를 사용하여 비활성화 된 드롭 다운 값을 저장합니다.


답변

나는 같은 문제가 있었고 내 해결책은 선택되지 않은 모든 옵션을 비활성화하는 것이 었습니다. jQuery를 사용하면 매우 쉽습니다.

$('option:not(:selected)').attr('disabled', true);

편집 =>
같은 페이지에 여러 개의 드롭 다운이있는 경우 아래와 같이 select-ID에서 선택하지 않은 모든 옵션을 비활성화합니다.

$('#select_field_id option:not(:selected)').attr('disabled', true);


답변

선택한 값을 비활성화하지 않고 이것을 시도하십시오 ..

$('#cf_1268591 option:not(:selected)').prop('disabled', true);

저 한테 잘 맞아요 ..


답변

이것은 당신이 찾고있는 것입니다 :

$('#cf_1268591').attr("style", "pointer-events: none;");

매력처럼 작동합니다.


답변

로 요소를 설정하면 disabled데이터가 제출되지 않지만 select요소에는 readonly.

당신은을 시뮬레이션 할 수 있습니다 readonlyselect탭이 변화를 방지하기 위해 스타일과 JS을 위해 CSS를 사용하여 :

select[readonly] {
  background: #eee;
  pointer-events: none;
  touch-action: none;
}

그런 다음 다음과 같이 사용하십시오.

var readonly_select = $('select');
$(readonly_select).attr('readonly', true).attr('data-original-value', $(readonly_select).val()).on('change', function(i) {
    $(i.target).val($(this).attr('data-original-value'));
});

결과:


답변

필드를 비활성화 할 것입니다. 그런 다음 양식을 제출할 때 비활성화하지 마십시오. 제 생각에 이것은 숨겨진 필드를 다루는 것보다 쉽습니다.

//disable the field
$("#myFieldID").prop( "disabled", true );

//right before the form submits, we re-enable the fields, to make them submit.
$( "#myFormID" ).submit(function( event ) {
    $("#myFieldID").prop( "disabled", false );
});     


답변

선택하지 않은 옵션을 제거하는 간단한 jquery.

$('#your_dropdown_id option:not(:selected)').remove();