2010-11-24 72 views
0

如果位置計數發生變化,我正在使用此javascript函數來顯示不同的彈出窗口。如果txtbox的可見性爲false,則txthiddenloccount值爲null。如果可見性是真的,它工作正常。這有什麼奇怪的?有人可以幫我嗎。Javascript不帶隱藏文本框的值?

function isPageValid() 
{ 
var validated = Page_ClientValidate('groupProfile'); 
var loccount = document.getElementById("ctl00_ContentPlaceHolder1_txthiddenloccount").value; 
if(validated) 
{ 
    if(loccount == '1') 
    { 
    var mdlPopup = $find('<%= ModalPopupExtendersavechanges.ClientID %>'); 
    if(mdlPopup) 
    { 
     mdlPopup.show();   
    } 
    } 
    else 
    { 
     var mdlPopup = $find('<%= ModalPopupExtenderMerchantUpdate.ClientID %>'); 

     if(mdlPopup) 
     { 
     mdlPopup.show();   
     } 
    } 
} 
} 
+1

可見性如何設置? – 2010-11-24 06:01:21

回答

3

如果txthiddenloccountasp:TextBox具有Visible屬性設置爲false,那麼它不會是由JavaScript可讀的頁面上存在。它將被存儲在ViewState中。

對於像這樣的事情,您可能最好使用asp:HiddenField並設置該值,這將創建一個可通過javascript訪問的input type='hidden'

0

在這裏,您正試圖獲取txthiddenloccount控件的值,該值由於其可見性爲false而未呈現在頁面上。因此首先你必須檢查它是否爲空,即你可以編寫這樣的代碼。

var loccount=''; 
if(document.getElementById("ctl00_ContentPlaceHolder1_txthiddenloccount") != null) 
{ 
loccount = document.getElementById("ctl00_ContentPlaceHolder1_txthiddenloccount").value; 
} 
0

如果通過ASP.NET將控件的Visible屬性設置爲false,它將成爲控件樹的一部分,但實際上永遠不會呈現給頁面。如果它沒有呈現給頁面,JavaScript不能訪問它。

如果你想讓它使用ASP.NET隱藏,你可以做這種方式在C#...

txthiddenloccount.Style.Add("display", "none"); 

這不會阻止渲染頁面上的控制,它會使用CSS把它藏起來。或者,你可以這樣做,但它可能不是你想要的,視覺上...

txthiddenloccount.Style.Add("visibility", "hidden"); 

希望有所幫助。