0

我有以下 jquery datapicker 脚本,我的目标是将用户选择转换为时间戳,以便以后可以将其保存到数据库中。但现在我试图让结果显示在不起作用的隐藏文件中。您可以提供的任何帮助将不胜感激。

        <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>
4

1 回答 1

1

从您的代码中可以看出您正在使用 Jquery datepicker 控件:

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

这目前只会执行一次。

因此,您需要绑定到触发事件,例如 change 事件:

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

您还需要访问 datepicker 值:

 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/

于 2013-06-22T15:35:42.090 回答