2012-10-31 60 views
2

簡而言之,當ASP.NET頁面有<form runat=server>標籤時,它打破了一些jQuery腳本。這裏有一個例子:ASP.NET <form runat = server>打破了jQuery

我有一個非常簡單的頁面只有一個複選框,這樣的:

<input type="checkbox" id="myCheckbox01" /> 

,並像這樣一個jQuery函數的調用:

<script language=javascript> 
    $(document).ready(function() { 
     $("[type=checkbox]").iphoneStyle(); 
    }); 
</script> 

請注我沒有特別引用任何ID。 jQuery調用適用於頁面中的所有複選框。

這工作正常,並且jQuery調用按預期工作。但是......

當我附上的複選框以ASP.NET的形式,象下面這樣:

<form runat="server" id="form1"> 
    <input type="checkbox" id="myCheckbox01" /> 
</form> 

jQuery的電話停止工作,而我得到的JavaScript錯誤「對象不支持財產或方法'iphoneStyle'「

請再次注意,我沒有引用任何特定的ID,複選框也不是ASP.NET(runat = server)控件 - 它只是一個普通的舊複選框。

我似乎無法跟蹤這個問題。任何幫助將不勝感激。

+0

您是否嘗試查看選擇器是否正常工作? 'console.log($(「[type = checkbox]」));' – JoeFletch

+0

是的,選擇器正在工作。儘管如此,我使用了不同的方法來測試它。我將這個調用改爲'$(「[type = checkbox]」)。hide();'並且複選框被隱藏了。 –

+0

即使您的選擇器正在工作,我建議將它更改爲'$('[type =「checkbox」]')。從性能角度來看,如果您不直接選擇ID,則可以使用容器。像'$('#form1 input [type =「checkbox」]')。' – Johan

回答

1

我有這個問題。 jQuery本身可以工作,但我添加的任何插件都不會。我不斷收到「對象不支持財產或方法......」的投訴。解決方案是將引用從jQuery插件從Site.Master aspx頁面移動到我使用jQuery插件的「主」頁面。我認爲通過將所有腳本引用放入Site.Master中我都很聰明,但我太聰明瞭。

0

像這樣改變你的腳本。它適用於我

<script language="javascript"> 
     $(document).ready(function() { 
     $('input:checkbox').iphoneStyle(); 
     }); 
    </script>