2011-10-20 40 views
0

我使用JavaScript來獲得的hiddenfield的JavaScript的getElementById沒有返回值

<script type="text/javascript"> 
     $(function() { 
      var newYear = document.getElementById('HF'); 
      alert('hehe' + newYear); 
      $('#countdown').countdown({ until: newYear, format: 'DHMS', layout: 
'<div id="timer">' + '<hr />' + 
    '<div id="timer_days" class="timer_numbers">{dnn}</div>' + 
    '<div id="timer_hours" class="timer_numbers">{hnn}</div>' + 
    '<div id="timer_mins" class="timer_numbers">{mnn}</div>' + 
    '<div id="timer_seconds" class="timer_numbers">{snn}</div>' + 
'<div id="timer_labels">' + 
    '<div id="timer_days_label" class="timer_labels">days</div>' + 
    '<div id="timer_hours_label" class="timer_labels">hours</div>' + 
    '<div id="timer_mins_label" class="timer_labels">mins</div>' + 
    '<div id="timer_seconds_label" class="timer_labels">secs</div>' + 
'</div>' + 
'</div>' 
      }); 
     }); 
</script> 

該值的ASPX代碼

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <div class="maindeal"> 
      <input type="hidden" runat="server" id="HF" /> 
       <div class="SocialNetworkShare"> 
        <asp:Label ID="SocialNetworkShare" runat="server" Text="Share" CssClass="SNS"></asp:Label> 
       </div> 

代碼隱藏[我設置爲隱藏的價值字段在代碼後面]

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     If IsPostBack = False Then 
      ShowOfferDetails(System.Configuration.ConfigurationManager.AppSettings.Get("DefaultOffer"), True)   '... here "0;0;0" is given as there is no event argument 
     End If 
     HF.Value = "10/21/2011" 
     MsgBox(HF.Value) 
    End Sub 

問題是javascript沒有檢測到這個VA lue ...並拋出空例外,當我使用alert()檢查價值.....請幫助。

+0

請檢查錯誤控制檯,並確認是他們的任何錯誤? – punit

回答

2

你HF控制是服務器端,因此其在DOM ID將不只是HF。 你可以做的是把一個class="HF"屬性在HF控制,然後從JS你可以做 $(".HF").val()以獲得其價值

+0

嘿它的作品,但javascript沒有計算正確的時間... HF的值爲2011/10/22 ..但計時器顯示還剩34分鐘..它應該顯示2天幾個小時左右的一些分鐘。 –

+0

請參閱'countdown' API doc。until參數需要HF文本值不同的格式 – Ankur

+0

如何將其格式更改爲「mm/dd/yyyy」?[這是指向插件的鏈接](http://keith-wood.name /countdownRef.html) –

1

嘗試,

var newYear = document.getElementById('<%=HF.ClientID %>'); //It return Html object 
alert(newYear.value); 

//OR 

var newYear1 = document.getElementById('<%=HF.ClientID %>').value; 
alert(newYear1); 
+0

這不起作用:(我在msg框中獲得'objectHTMLInputElement'。 –

+0

@SifyJuhy - 使用newYear.value或var newYear = document.getElementById('<%= HF.ClientID%>').value; – adatapost

+0

嘿它作品,但JavaScript不計算時間正確... HF的值爲2011/10/22 ..但計時器顯示34分鐘左右..它應該顯示2天幾個小時左右一些分鐘 –