禁用div内的所有表单元素

有没有办法通过在jquery / javascript中只告诉父div的名称来禁用所有字段(textarea / textfield /选项/input/checkbox/提交等)在窗体中?

尝试使用:inputselect器,以及父select器:

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

对于jQuery .prop() ,使用.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); } } 

我在不同的地方使用下面的函数。 只要使用了正确的select器,就可以在表格中的div或button元素中工作。 只是“:button”不会重新启用我。

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

以下将禁用所有的input,但不能使它btn类,也添加类来覆盖禁用css。

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

css类

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

对我来说,接受的答案没有工作,因为我有一些asp网隐藏的领域也被禁用,所以我只select禁用可见的领域

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