JQGrid の colModel の一部として、次のものがあります。
{name:'revisedDate', width:220, editable: true, datefmt:'yyyy/mm/dd',edittype:'text',editrules:{date:true, required:true},search:true, stype:'text'}
datefmt と date:true は、1 つの特殊なケースを除いて、期待どおりに機能しているようです。現在、ユーザーが「2012/04/」と入力すると、jqgrid はこれを有効な日付値として受け入れますが、日付が欠落しています。他のすべての誤ったバリエーションでは、フォームの上部にエラー メッセージが表示され、次のテキストが表示されます。有効な日付値を入力してください - yyyy-mm-dd.
また、colModel を使用するように変更しようとしましたが、datefmt:'yyyy-mm-dd
成功しませんでした。
私が間違っていることはありますか?私の次のステップは、カスタム フォーマッタを展開することですが、それは不要なようです。
JQGrid のバージョン: 4.3.1
解決策: beforeSubmit イベントの文字列に対して正規表現をテストし、そのままにしておきましeditrules{date:true}
た。日付の検証の大部分は組み込みの datefmt によって行われるため、以下の正規表現は実際にはそのバグの応急処置にすぎません。より理想的な解決策は、すべての日付の検証を同じ場所で行うことですが、このフォームを使用しても、余分な時間を費やす価値はありません。
var datePattern = new RegExp(/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/g);
var revised = $("#revisedDate").val();
if(!datePattern.test(revised))
{
return[false, "Revised Date (YYYY/MM/DD/): Please enter valid date value - YYYY/MM/MM"];
}
return [true, "Success"];