禁用div加载不起作用为什么?

时间:2011-12-12 00:46:41

标签: javascript jquery html

我想在加载时禁用div,然后单击按钮启用它。 或者换句话说,我想在加载时隐藏它,并在用户点击时加载它。

首先,这是一个正确的策略,在禁用模式下加载div然后启用它,还是我应该在加载后将它附加到正文?

其次,这是我的代码,我检查了很多类似的问题,我的浏览器是chrome,但它不起作用,我不知道为什么你可以帮我解决这个问题?

<div class="test_dis" style="left:170px; top:128px;" >
  this is a test to see if 
  i can disable it on load or not
   <div>child </div>
</div>

$(document).load(function(e) { // shall it be on Load or Ready ?
     //.attr("disabled","disabled"); both are not working !
     $('.test_dis').attr('disabled',true);
});

谢谢,

4 个答案:

答案 0 :(得分:4)

它无效,因为您无法禁用div元素。这仅适用于表单元素。

HTML spec

  

“以下元素支持禁用的属性:BUTTON,INPUT,   OPTGROUP,OPTION,SELECT和TEXTAREA。“

对于禁用的元素,您应该设置HTML属性,以便在创建元素时禁用该元素,而不是在创建元素后禁用它。例如:

 <input type="text" name="Info" disabled="disabled" />

ready事件发生的时间早于load事件,因此您无法直接在HTML元素中进行任何调整,您应该在ready事件中执行此操作。文档加载时会发生ready事件,而当页面上的所有内容(图像等等)也已加载时,load事件就会发生。

答案 1 :(得分:0)

隐藏它?

$(document).ready(function() { 
   $('.test_dis').hide();
});

答案 2 :(得分:0)

隐藏它会起作用,但需要一个相同尺寸和容量的容器。定位,例如。

<div class="test_dis_container" style="left:170px; top:128px;" >

然后向容器添加一个函数,以便您可以在单击时显示div:

   $(document).ready(function() { 
   $('.test_dis').hide();

   $('.test_dis_container').click(function() {
   $('.test_dis').show();
   }

   });

答案 3 :(得分:0)

HTML:

"[Lcom.example.A;"

JS / jQuery:

<p>
    Click to change: <input id="toggleElement" type="checkbox" name="toggle" onchange="toggleStatus()" />
</p>

    <div id="elementsToOperateOn">
            This is our example div block. <br />
            Sample Text Box: <input type="text" name="name" /> <br />
            Sample Checkbox : <input type="checkbox" name="participate" /> 
........
    </div>

来源:Disable And Enable Input Elements In A Div Block Using jQuery