Programing

div 내의 모든 양식 요소를 사용하지 않도록 설정

lottogame 2020. 6. 9. 07:36
반응형

div 내의 모든 양식 요소를 사용하지 않도록 설정


jquery / javascript에서 부모 div 이름 만 알려 주어 양식에서 모든 필드 (textarea / textfield / option / input / checkbox / submit 등)를 비활성화하는 방법이 있습니까?


:input부모 선택기와 함께 선택기를 사용해보십시오 .

$("#parent-selector :input").attr("disabled", true);

$('#mydiv').find('input, textarea, button, select').attr('disabled','disabled');

jquery 1.6+ .prop()의 경우 .attr(),

$("#parent-selector :input").prop("disabled", true);

또는

$("#parent-selector :input").attr("disabled", "disabled");

    $(document).ready(function () {
        $('#chkDisableEnableElements').change(function () {
            if ($('#chkDisableEnableElements').is(':checked')) {
                enableElements($('#divDifferentElements').children());
            }
            else {
                disableElements($('#divDifferentElements').children());
            }
        });
    });

    function disableElements(el) {
        for (var i = 0; i < el.length; i++) {
            el[i].disabled = true;

            disableElements(el[i].children);
        }
    }

    function enableElements(el) {
        for (var i = 0; i < el.length; i++) {
            el[i].disabled = false;

            enableElements(el[i].children);
        }
    }

이 코드 줄은 모든 입력 요소를 비활성화합니다.

$('#yourdiv *').prop('disabled', true);

여러 지점에서 아래 기능을 사용하고 있습니다. 오른쪽 선택기가 사용되는 한 테이블의 div 또는 버튼 요소에서 작동합니다. ": button"만 다시 사용할 수 없습니다.

function ToggleMenuButtons(bActivate) {
    if (bActivate == true) {
        $("#SelectorId :input[type='button']").prop("disabled", true);
    } else {
        $("#SelectorId :input[type='button']").removeProp("disabled");
    }
}

HTML 속성 'disabled'만 사용하여이를 달성하는 방법

<form>
 <fieldset disabled>
  <div class="row">
   <input type="text" placeholder="">
   <textarea></textarea>
   <select></select>
  </div>
  <div class="pull-right">
    <button class="button-primary btn-sm" type="submit">Submit</button>
  </div>
 </fieldset>
</form>

fieldset에 disabled를 설정하면 해당 fieldset 내부의 모든 필드가 비활성화됩니다.

$('fieldset').attr('disabled', 'disabled');

Following will disable all the input but will not able it to btn class and also added class to overwrite disable css.

$('#EditForm :input').not('.btn').attr("disabled", true).addClass('disabledClass');

css class

.disabledClass{
  background-color: rgb(235, 235, 228) !important;
}

For me the accepted answer did not work as I had some asp net hidden fields which got disabled as well so I chose only to disable visible fields

//just to save the list so we can enable fields later
var list = [];
$('#parent-selector').find(':input:visible:not([readonly][disabled]),button').each(function () {
    list.push('#' + this.id);
});

$(list.join(',')).attr('readonly', true);

Use the CSS Class to prevent from Editing the Div Elements

CSS:

.divoverlay
{
position:absolute;
width:100%;
height:100%;
background-color:transparent;
z-index:1;
top:0;
}

JS:

$('#divName').append('<div class=divoverlay></div>');

Or add the class name in HTML Tag. It will prevent from editing the Div Elements.


Only text type

$(".form-edit-account :input[type=text]").attr("disabled", "disabled");

Only Password type

$(".form-edit-account :input[type=password]").attr("disabled", "disabled");

Only Email Type

$(".form-edit-account :input[type=email]").attr("disabled", "disabled");

참고URL : https://stackoverflow.com/questions/5290525/disable-all-form-elements-inside-div

반응형