問題はJQueryの検証にあることがわかりました。javascript Dateコンストラクターを呼び出して、日付が有効かどうかを確認します。
// http://docs.jquery.com/Plugins/Validation/Methods/date
date: function(value, element) {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
},
javascript Dateコンストラクターは、yyyy-MM-ddの形式の日付を予期しているため、ポルトガル語の形式dd-MM-yyyの日付に対してInvalidを返しました。
例外は、無効を返さないIEですが、導入した日付とは異なる日付です。
解決策は、コードを使用してjquery.validate-pt.jsを作成し、検証を正しい形式でオーバーライドすることでした。
$.validator.methods.date = function (value, element) {
return this.optional(element) || ( /^\d{1,2}[\/-]\d{1,2}[\/-]\d{4}(\s\d{2}:\d{2}(:\d{2})?)?$/.test(value)
&& !/Invalid|NaN/.test(new Date(value.replace("/", "-").split("-")[2], value.replace("/", "-").split("-")[1], value.replace("/", "-").split("-")[0])));
}