2010-11-24 6 views
0

Ich benutze diese JavaScript-Funktion, um verschiedene Popups anzuzeigen, wenn die Anzahl der Standorte variiert. Hier ist der Wert von txthiddenloccount null, wenn die Sichtbarkeit der txtbox falsch ist. Wenn die Sichtbarkeit wahr ist, funktioniert es gut. Was ist das seltsam ??? Kann mir jemand helfen?Javascript nimmt nicht versteckten Textfeld Wert?

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

Wie ist die Sichtbarkeit festgelegt? –

Antwort

3

wenn txthiddenloccount ist ein asp:TextBox, die die Visible-Eigenschaft auf false gesetzt hat, dann ist es nicht auf der Seite vorhanden sind, die von Javascript lesbar ist. Es wird im ViewState gespeichert.

Für so etwas sind Sie wahrscheinlich besser dran mit einer asp:HiddenField und setzen Sie den Wert, der eine input type='hidden' erstellen wird, die durch Javascript zugänglich sein wird.

0

Hier versuchen Sie, den Wert von txthiddenloccount control zu erhalten, der auf der Seite nicht gerendert wurde, weil seine Sichtbarkeit falsch ist. so zuerst müssen Sie überprüfen, ob es Null ist, d. H. Sie können Code wie folgt schreiben.

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

Wenn die Visible-Eigenschaft der Steuerung als falsch über ASP.NET gesetzt ist, wird es Teil des Steuer Baum sein, aber nie wirklich auf die Seite gerendert bekommen. Wenn es nicht auf die Seite gerendert wird, kann JavaScript nicht darauf zugreifen.

Wenn Sie es mit ASP.NET verbergen möchten, können Sie es auf diese Weise in C# tun ...

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

Das wird die Steuerung von Wiedergabe auf der Seite nicht verhindern und wird es CSS verwenden, um Verstecke es. Alternativ können Sie dies tun, aber es kann nicht sein, was Sie wollen, visuell ...

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

Hoffnung, das hilft.

Verwandte Themen