2013-04-01 116 views
1
<script language="javascript" type="text/javascript" src="jquery-1.6.js"></script> 

<script> 

    $('.disabledForm').each(function(i, div) { 
    alert('in here'); 
    $(div).find('input').each(function(j, element){ 
     $(element).attr('disabled','disabled'); 
    }); 
    }); 
</script> 

<div id="divDisabled" class="disabledForm"> 
      <label>Disabled Input 1&nbsp;<input type="text" id="disabledInput1" name="disabledInput1" /></label> 
      <br /> 
      <label>Disabled Input 2&nbsp;<input type="text" id="disabledInput2" name="disabledInput2" /></label> 
     </div> 

永遠不會看到「在這裏」消息,我的輸入永遠不會被禁用,所以我認爲我做錯了什麼。有人能告訴我什麼是我做得不對嗎?在特定類別的div中循環輸入所有輸入

+0

使用http:/ /api.jquery.com/prop來禁用表單元素 – Blazemonger

+0

我也推薦使用jQuery 1.6以上版本的新版本 – Daff

+0

您也不需要使用.each這麼多。$(this).find('input ').prop('disabled',true);'很好,贏了'不會像'.each'那樣吃掉資源。 – PlantTheIdea

回答

3

您必須將代碼包裝在$(function(){ ... })塊中,以便讓它看到整個DOM。

<script> 
$(function(){ 

    //your js code here 

}); 
</script> 
0

你應該換你的函數大約$(文件)。就緒(函數(){ '你的方法在這裏'}

0

$(document).ready(function() 
{ 
    $('.disabledForm').each(function(i, div) { 
     alert('in here'); 
     $(div).find('input').each(function(j, element) 
     { 
      $(element).attr('disabled','disabled'); 
     }); 
    }); 
});