首页 文章

禁用div中的所有表单元素

提问于
浏览
144

有没有办法通过只告诉jquery / javascript中的父div名称来禁用表单中的所有字段(textarea / textfield / option / input / checkbox / submit等)?

11 回答

  • 0

    以下将禁用所有输入,但不能使它btn类,并添加类来覆盖禁用css .

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

    css课

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

    尝试使用:input选择器以及父选择器:

    $("#parent-selector :input").attr("disabled", true);
    
  • 29
    $('#mydiv').find('input, textarea, button, select').attr('disabled','disabled');
    
  • 0

    对于jquery 1.6,使用.prop()而不是.attr()

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

    要么

    $("#parent-selector :input").attr("disabled", "disabled");
    
  • 1
    $(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);
            }
        }
    
  • 5

    我在不同的地方使用下面的功能 . 只要使用了右选择器,就可以在表中的div或button元素中使用 . 只是“:按钮”不会为我重新启用 .

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

    只需这行代码就会禁用所有输入元素

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

    对我来说,接受的答案不起作用,因为我有一些asp网隐藏字段也被禁用,所以我选择只禁用可见字段

    //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);
    
  • 1

    使用CSS类来防止编辑Div元素

    CSS:

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

    JS:

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

    或者在HTML标记中添加类名 . 它将阻止编辑Div元素 .

  • 0

    只有文字类型

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

    只有密码类型

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

    仅电子邮件类型

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

    如何仅使用HTML属性“禁用”来实现此目的

    <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>
    

    只需将disabled设置在fieldset中,该字段集内的所有字段都将被禁用 .

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

相关问题