2013-06-22 54 views
0

我有以下的jquery datapicker腳本,我的目標是將用戶選擇轉換爲時間戳,以便它可以稍後保存到數據庫。但現在我試圖讓結果顯示在隱藏的文件不工作。 任何幫助,您可以提供將不勝感激。jquery datepicker沒有反射回隱藏的輸入

 <script type="text/javascript"> 
      $(document).ready(function(){     
       $("#date").datepicker({ 
        showButtonPanel: true, 
        minDate: '0M', 
        maxDate: '+90D',  
        dateFormat: "d-MM-yy", 
        }); 
        var dateString = $('#date').val(); 
        var timestamp = Date.parse(dateString).getTime()/1000; 
        $('#hidden1').val(timestamp);     
      }); 
     </script> 
    </head> 
    <body> 
    <div> 
     <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST"> 
      <p> Enter expire date: <br /> 
      <input type="text" name="date" id="date"/></p> 
      <input type="hidden" name="hidden1" id="hidden1" value=""/>    
      <button type="submit" name="btn_test" >Test Button</button> 
     </form> 
    </div> 
    </body> 
</html> 

回答

1

這似乎形成你的代碼,您正在使用jQuery日期選擇器控制:

http://api.jqueryui.com/datepicker/

這目前將只執行一次。

所以,你需要綁定到一個觸發事件,如改變事件本身:

$("#date").change(function(){ 
     var dateString = $('#date').val(); 
     var timestamp = Date.parse(dateString).getTime()/1000; 
     $('#hidden1').val(timestamp); 
    }); 

您還需要訪問日期選擇器值:

var dateString = $("#date").datepicker("getDate"); 

而不是:

var dateString = $('#date').val(); 

產生:

$("#date").datepicker({ 
    showButtonPanel: true, 
    minDate: '0M', 
    maxDate: '+90D',  
    dateFormat: "d-MM-yy" 
}).change(function(){ 
    var dateString = $("#date").datepicker("getDate"); 
    if(dateString != null){ 
     var timestamp = dateString.getTime()/1000; 
     $('#hidden1').val(timestamp); 
    } 
}); 

的jsfiddle:http://jsfiddle.net/eQqVg/6/

+0

你好,我想你的建議和代碼本身的工作原理,但它不是傳遞變量時間戳#hidden1出於某種原因..日期輸入控制器的作品,但不是hidden1輸入控制器.. – user1448039

+0

我已經更新了我的答案,以便在onblur事件不一致的情況下使用更改事件。我還爲無日期禮物添加了零保護。儘管我沒有機會使用Date.parse來嘗試它。 – SlitCanvas

+0

我已經檢查和JQuery日期選擇器返回一個本地的JQuery日期對象,因爲這樣不應該需要解析。更新我的答案以表明這一點。 – SlitCanvas