2011-03-31 39 views
11

我使用下面的代碼隱藏下拉框:我怎麼能回設置可見真正的jQuery中

<asp:DropDownList ID="test1" runat="server" DataSourceID="dsTestType" CssClass="maptest1" visible="false" 
    DataValueField="test_code" DataTextField="test_desc" AppendDataBoundItems="true" > 
    <asp:ListItem></asp:ListItem> 
    </asp:DropDownList> 

不知怎的,我試圖表明該下拉通過使用下面的代碼,但是這僅僅是不爲我工作。有人知道爲什麼

$("#test1").show(); 

回答

15

使用ASP.NET的visible="false"屬性將設置visibility屬性在那裏,因爲我認爲當你在jQuery的調用show()它修改CSS樣式的display屬性。

所以做後者不會糾正前者。

你需要這樣做:

$("#test1").attr("visibility", "visible"); 
+7

@Jin Youn,你爲什麼選擇這個答案?你試過了嗎?它不起作用,正確答案是JohnP答案。 – Amir978 2012-04-05 00:05:42

+0

@ Amir976看看JohnP答案的第一部分。根本打鈴?它確實有效,而且對於Jin來說顯然效果很好。爲什麼他會接受一個不起作用的答案? – 2012-04-07 03:33:29

+1

這不起作用 – user1135357 2012-04-24 18:26:09

0

您是如何讓它看不見的?嘗試不同的方法。使用

$("#test1").css('display','none'); 

當你想隱藏元素,然後用

$("#test1").css('display','block'); 

當你wnat表現出來。

或者只是將這些樣式移動到類中並添加/刪除類。

+0

他使用UI設計器將'Visible'屬性設置爲'false'。除非您在代碼段中水平滾動,否則無法看到它。 – 2011-03-31 06:26:03

+0

這與樣式沒有任何關係。這與'visibility'屬性有關。 'show()'方法完成了你的建議。 – 2011-03-31 06:26:23

+0

它與IIS如何渲染頁面有關。它不會將所有內容映射到您期望的CSS屬性。你確定它是可見的:隱藏和不顯示:無? – 2011-03-31 06:30:36

0

我會小心的設置以阻止元素的display。不同的元素具有不同的標準顯示。例如,設置顯示以阻止Firefox中的表格行導致單元格的寬度不正確。

元素名稱實際上是test1。我知道.NET可以在開始或結束時添加額外的東西。找出你的選擇器是否正常工作的最好方法就是這樣做。

alert($('#text1').length); 

你可能只是需要刪除的visibility屬性

$('#text1').removeAttr('visibility'); 
0

的問題是,因爲你正在使用ASP.NET與runat屬性控制,控制的ID是不實際「測試1 」。它是「test1」,附帶一個長字符串。

41

取決於你如何隱藏它。

如果您使用的CSS visibility值,那麼

$('#test1').css('visibility', 'visible'); 

如果您使用CSS'顯示」

$('#test1').css('display', 'block'); //or inline or any of the other combos 

您甚至可能使它不透明度= 0

$('#test1').css('opacity', '1'); 
+1

感謝JohnP。其實你的答案是正確的答案。 – Amir978 2012-04-05 00:06:12

4

Depends中,如果我沒有記錯的話,我認爲當你設置vi時,asp.net不會渲染html對象善於虛假。

如果您希望能夠從客戶端控制它,那麼您最好只包含css值以將其設置爲不可見,而不是使用visible = false。

+0

這就是我碰到的。如果在後面的代碼中將其設置爲visible = false。 jQuery沒有在客戶端工作的元素。 – 2013-02-19 14:02:47

3

刪除visible =「false」屬性並添加一個默認不可見的CSS類。 那麼你應該能夠通過正確的ID引用下拉列表中,例如:

$("#ctl00_cphTest_test1").show(); 

在上面,你應該在渲染頁面的瀏覽器中的源檢索算法的ID。

0

在下拉列表標記和jQuery中使用style =「display:none」,使用以下命令顯示和隱藏。 (「#yourdropdownid」)。css('display','inline');

OR

$( 「#yourdropdownid」)的CSS( '顯示', '無')。