2016-05-25 5 views
0

日付変更が2回発生し、ユーザーが日付を選択し、日付が "dd-mm-yyyy"の形式になっているが、ユーザーが日付フィールドをクリックしたり日付を変更すると「YYYY-MM-DD」に変更されます(提出時にこの形式にする必要があります)Datepickerの変更日が2回発生する

私はここで間違っているのか分かりません。

関連するコード:

<input type="text" data-bind="value: DateOfBirth" value="" required="" name="DateOfBirth" id="DateOfBirth" placeholder="dd/mm/yyyy" data-val-required="Date of Birth is required." data-val="true" autocomplete="off"class="form-control input-sm datepicker" aria-required="true" onkeydown="return false" /> 

<script> 
     $('.datepicker').datepicker({ 
      startView: "decade", 
      minViewMode: "days", 
      format: "dd/mm/yyyy", 
      autoclose: true, 
      endDate : '0' 
     }); 

    $('#DateOfBirth').change(function() 
    { 
     var date = $(this).val(); 
     if (date != null && date != "") 
     { 
      var dateArray = date.split('/'); 
      if (dateArray.length === 3) 
      { 
       myModel.DateOfBirth(dateArray[2] + "-" + dateArray[1] + "-" + dateArray[0]); 
      } 
     } 
     $(this).valid(); 
    }); 

</script> 

答えて

0

私は

<input type="text" data-bind="value: DateOfBirth" value="" required="" name="DateOfBirth" id="DateOfBirth" placeholder="dd/mm/yyyy" data-val-required="Date of Birth is required." data-val="true" autocomplete="off"class="form-control input-sm datepicker" aria-required="true" onkeydown="return false" /> 

<input type="hidden" id="BirthDate" value="" data-bind="value: DateOfBirth" /> 

<script> 
     $(function() { 

      $('#DateOfBirth').datepicker({ 
       format: 'dd/mm/yyyy', 
       altField: "#BirthDate", 
       altFormat: "yy-mm-dd" 
      }); 

     $('#DateOfBirth').change(function() { 
      var date = $("#BirthDate").val(); 
      if (date != null && date != "") { 
       myModel.DateOfBirth(date); 
      } 
     }); 

</script> 
、jqueryの-UIを使用して、それを修正するために管理
0

myModelはどこにも定義されていません。

あなたはこのようにそれを行うことができます:

$('#DateOfBirth').change(function() { 
     var date = $(this).val(); 
     if (date != null && date != "") { 
     var dateArray = date.split('/'); 
     if (dateArray.length === 3) { 
      $('#DateOfBirth').val(dateArray[2] + "-" + dateArray[1] + "-" + dateArray[0]); 
     } 
     } 
     $(this).valid(); 
    }); 

しかし、再び、あなたは入力にちょうどYYYY-MM-DDフォーマットが表示されます。変更時に更新され、日付を選択するたびに変更されるため、初期形式は常に上書きされるためです。

あなたは、あなたがそのフォーマット変更のサーバーサイドを行うか、フォームに入力変化に代わりに提出することができ、ここでhttps://jsfiddle.net/vo7k676n/

それをテストすることができます。

関連する問題