2012-08-27 4 views
6

私はMVC3、EF4プロジェクトをjavascript datepickerで動作させようとしていますが、日付を英国形式(dd/mm/yyyy )。MVC3グローバル化ライブラリスクリプトを使用した日付検証

私はこの問題を調査するのに数時間を費やしました。このlinkで見たように、「グローバル化」ライブラリスクリプトを実装することに決めました。

私はそれを実行すると、私は($.validator.methods.date行から来る)のjavascriptになっています。私のjavascriptに関する知識はかなり限られています。私が見つけたすべての例は、このライブラリのグローバル化ライブラリを使用しているので、このエラーは言及されていないので、かなり困惑しています。

私は以下の私の見解から、関連するコードを示しています

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.globalize/globalize.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.globalize/cultures/globalize.culture.en-GB.js")" type="text/javascript"></script> 

<link href="../../Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript"> 
    Globalize.culture("en-GB"); 
    $.validator.methods.date = function (value, element) { return this.optional(element) || Globalize.parseDate(value); } 
</script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.date').datepicker({ dateFormat: "dd/mm/yy" }); 
    }); 
</script> 

//SNIP 

<div class="editor-field"> 
    @Html.TextBox("Expires", Model.Expires, new { @class = "date" }) 
    @Html.ValidationMessageFor(model => model.Expires) 
</div> 

は、誰かが私は、この問題を解決する助けてくださいでした。

ありがとうございました。

答えて

0

私はしばらくのうちにグローバル化ライブラリを使用していませんが、それはあなたにとって過度の可能性があるように感じます - en-GBで日付の値が必要な場合、次のJavascript/jQueryコードhere is a fiddle)

<input type="text" class="date" placeholder="en-gb datepicker" /> 
<button id="btnGetVal">Get Value</button> 

<script type="text/javascript"> 
$(document).ready(function() { 
    /* you correctly have the date format set when initializing the datepicker */ 
    $('.date').datepicker({ dateFormat: "dd/mm/yy" }); 
    /* create an event handler for the "click" function of the button */ 
    $('#btnGetVal').on('click', function() { 
     /* event handler */ 
     var targetValue = $('.date').val(); 
     alert(targetValue); 
    }); 
}); 
</script> 

私はjQueryの2.1.0とjQuery UI 1.10.4でこれをテスト - あなたは両方のために、あなたのNuGetパッケージをアップデートする必要があるかもしれません(私はあなたが私は仮定のjQueryのは本当に古いバージョンを使用している参照IE8をサポートする必要がありますか、古いバージョンのMVCを使用している必要があります)

Javascrのすべてを初期化することをお勧めしますすべての関数がロード時にアクセス可能となるようにdocument.ready()関数内でiptコードを使用します(datepicker()を初期化するときにGlobalizeコードにアクセスできないため)。もっと読むことをお勧めします:http://learn.jquery.com/using-jquery-core/document-ready/