Javascript不带隐藏文本框值?

时间:2010-11-24 05:54:53

标签: c# javascript asp.net

如果位置数量不同,我正在使用此javascript函数显示不同的弹出窗口。如果txtbox的可见性为false,则txthiddenloccount值为null。如果可见性为真,则可以正常工作。这有什么奇怪的?有人可以帮我吗。

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();           
      }
  }
}
}

3 个答案:

答案 0 :(得分:3)

如果txthiddenloccountasp:TextBox且Visible属性设置为false,那么它在javascript可读的页面上不存在。它将存储在ViewState中。

对于类似这样的内容,您可能最好使用asp:HiddenField并设置值,这将创建一个可通过javascript访问的input type='hidden'

答案 1 :(得分:0)

在这里,您尝试获取txthiddenloccount控件的值,该值未在页面上呈现,因为其可见性为false。 所以首先你必须检查它是否为空,你可以编写这样的代码。

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

答案 2 :(得分:0)

如果控件的Visible属性通过ASP.NET设置为false,它将成为控件树的一部分,但实际上永远不会呈现给页面。如果它没有呈现给页面,JavaScript就无法访问它。

如果你想使用ASP.NET隐藏它,你可以用C#...

这样做
txthiddenloccount.Style.Add("display", "none");

这不会阻止控件在页面上呈现,它将使用CSS来隐藏它。或者,您可以这样做,但它可能不是您想要的,在视觉上......

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

希望有所帮助。