2016-09-03 10 views
2

私はeonasdan datetimepickerを使用しています。オプションを使用してデフォルトの日付を選択しました。私はchrome、firefox 47.0、およびmicrosoft edje 25.1を使ってページを開いた。日付が表示されませんeonasdan datetimepicker

  • Firefoxの場合:日付がテキストフィールドに表示されます。しかし、私がアドレスバー「 」に行き、「enter」を押すと、テキストフィールド に示されている日付が消えます。
  • Chromeとedjeの場合:ページを開くと、テキストフィールドに日付は表示されません。

私はこの質問fiddleのフィドルを作成しました。フィドルで起こることは、Google Chromeとインターネットエクスプローラの場合と同じです。

問題を修正したdatetimepickerに 'viewDate:true'オプションを使用してみました。しかし、別の問題が生じました。カレンダーアイコンをクリックすると、カレンダーは表示されません。

なぜこれが起こっているのかわかりません。どんな助けでも大歓迎です。

フィドルで同じコードは以下の通りです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta charset="utf-8" /> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
     <meta name="viewport" content="width=device-width, initial-scale=1" /> 
     <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 
     <title> 
       Example 
     </title> 
     <link rel="stylesheet" type="text/css" media="screen" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" /> 
     <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"/> 
     <link href="//cdn.rawgit.com/Eonasdan/bootstrap-datetimepicker/e8bddc60e73c1ec2475f827be36e1957af72e2ea/build/css/bootstrap-datetimepicker.css" rel="stylesheet"/> 

     <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> 
     <!--[if lt IE 9]> 
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
      <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> 
     <![endif]--> 
     <script type="text/javascript" src="//code.jquery.com/jquery-2.1.1.min.js"></script> 
     <script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> 
     <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.js"></script> 
     <script src="//cdn.rawgit.com/Eonasdan/bootstrap-datetimepicker/e8bddc60e73c1ec2475f827be36e1957af72e2ea/src/js/bootstrap-datetimepicker.js"></script> 
    </head> 
    <body> 
     <div class="container"> 
      <form id="j_idt11" name="j_idt11" method="post" action="/myPage.xhtml" enctype="application/x-www-form-urlencoded"> 
       <input type="hidden" name="j_idt11" value="j_idt11" />   
       <div class="row"> 
        <div class="col-md-4 col-md-offset-4">   
         <div class="panel panel-primary"> 
          <div class="panel-heading text-center"> 
           My Panel     
          </div>     
          <div class="panel-body"> 
           <div class="form-group text-right">                      
            <label class="text-right">My Date</label>   
            <div class="form-group">                         
             <div class='input-group date' id='d0'> 
              <input type="text" name="j_idt11:j_idt15:0:j_idt21" value="2016-09-03" class="form-control text-right" onkeydown="return false" /> 
              <span class="input-group-addon"> 
               <span class="glyphicon glyphicon-time"></span> 
              </span> 
             </div> 
             <script type="text/javascript"> 
              $(function() {      
               var cID = "#"; 
               cID = cID.concat('d0'); 

               var t = '2016-09-03' 

               var options = { 
                 format: 'L',         
                 defaultDate: moment(t) 
                };      

               $(cID).datetimepicker(options);      
              }); 
             </script>     
            </div>   
           </div> 
          </div>                 
         </div> 
        </div>     
       </div>       
      </form> 
     </div> 
    </body> 
</html> 

答えて

1

あなたのHTML内のDateTimePicker入力用value属性は必要ありません。あなたはそれを削除した場合、次の例に示したように、あなたのコードは動作します:

var cID = "#"; 
 
cID = cID.concat('d0'); 
 
var t = '2016-09-03'; 
 
var options = { 
 
    format: 'L', 
 
    defaultDate: moment(t) 
 
};      
 
$(cID).datetimepicker(options);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment-with-locales.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script> 
 

 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css" rel="stylesheet" /> 
 

 

 
<div class="container"> 
 
    <form id="j_idt11" name="j_idt11" method="post" action="/myPage.xhtml" enctype="application/x-www-form-urlencoded"> 
 
    <input type="hidden" name="j_idt11" value="j_idt11" />   
 
    <div class="row"> 
 
     <div class="col-md-4 col-md-offset-4">   
 
     <div class="panel panel-primary"> 
 
      <div class="panel-heading text-center"> 
 
      My Panel     
 
      </div>     
 
      <div class="panel-body"> 
 
      <div class="form-group text-right"> 
 
       <label class="text-right">My Date</label> 
 
       <div class="form-group"> 
 
       <div class='input-group date' id='d0'> 
 
        <input type="text" name="j_idt11:j_idt15:0:j_idt21" class="form-control text-right" onkeydown="return false" /> 
 
        <span class="input-group-addon"> 
 
        <span class="glyphicon glyphicon-time"></span> 
 
        </span> 
 
       </div> 
 
       </div> 
 
      </div> 
 
      </div> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </form> 
 
</div>

あなたがデータを使用する場合は、オプションのオブジェクトを設定するオプションまたはdata-date-optionsを設定するdata-date-*を使用することができます属性。あなたの場合、valueの代わりにdata-date-default-dateを使用することができます。

詳細data-*の初期化herehereがあります。

+0

ヴィンチェンツォC。あなたが言ったことは正しいです。しかし、 'value'属性はJSF をレンダリングしたものです。これがvalue属性が存在する理由です。それ以外の場合、マネージドBeanプロパティにテキストフィールドを追加するにはどうすればよいですか? –

+0

最終的な解決策として。これを行う方法は次のとおりです。まず、jsf の代わりにを使用します。次に、テキストフィールドは、その値がdatetimepickerから来るため、「値」属性を持つべきではありません。第三に、私はjsf に頼っていないので、フォームを送信した後にリクエストパラメータを読み、必要な処理や検証を行う必要があります。その方法については、この記事のhttps://www.mkyongで説明しています。com/jsf2/how-to-pass-new-hidden-value-backing-bean-in-jsf / –

0

CDN:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.js"></script> 

<script type="text/javascript" src="https://cdn.rawgit.com/Eonasdan/bootstrap-datetimepicker/a549aa8780dbda16f6cff545aeabc3d71073911e/src/js/bootstrap-datetimepicker.js"></script> 

<script type="text/javascript" src="https://cdn.rawgit.com/Eonasdan/bootstrap-datetimepicker/a549aa8780dbda16f6cff545aeabc3d71073911e/build/css/bootstrap-datetimepicker.css"></script> 

HTML:

<div class="row"> 
    <div class="col-md-12"> 
     <h6>datetimepicker1</h6> 

     <div class="form-group"> 
      <div class="input-group date" id="datetimepicker1"> 
       <input type="text" class="form-control" /> <span class="input-group-addon"><span class="glyphicon-calendar glyphicon"></span></span> 
      </div> 
     </div> 
     <h6>datetimepicker2</h6> 
     <input type="text" class="form-control" id="datetimepicker2" /> 
    </div> 
</div> 

はJavaScript:

$('#datetimepicker1').datetimepicker(); 
$('#datetimepicker2').datetimepicker(); 

使用このコードは...

あなたのための便利なこの意志..

関連する問題