2011-12-16 41 views
0

私はasp.net ajaxツールキットmaskeditextenderを使用して日付入力用のテキストボックスをマスクしています。問題は、しかし、私はそれが正しく入力する日付に対して検証することはできません。オートコンプリートマスクをオフにして7スラッシュ6スラッシュ88を入力すると、「07/06/88」と記入されますが、これは面白いことに有効な日付ではありません。私はマスクを自動完成したら "07/06/1988"にオートコンプリートする必要がありますが、1900年に設定しても "07/06/0088"にオートコンプリートします...ASP.NET AJAXツールキットMaskEditExtender日付オートコンプリートマスク

アドバイスはありますか?

マイソリューション:

だから、オートコンプリートがひどいです。 00を追加するだけで、YYの前に19を置くJSを書く必要があるでしょう。「07/06/0088」を取得します。

回答者が提案したように私はオートコンプリートをオフにしましたがそれでも日付の正当性は検証されません。私は日付のデータ型に対して比較バリデータを使用していました。

「1988年7月6日」

何もない:それは結局のところしかし、それは非常に特定のフォーマットを必要とします。だから、私は月と日と19から年に0をパッディングするカスタムバリデーターを書きました。また、私はtxtボックスの値を使用したときに例外をスローせずにdatetimeに変換するために同じ修正を複製する必要がありました。

+0

あなたのコードを投稿して、自分が行ったことを理解し、その動作を理解できるようにすることは役に立ちます。 –

答えて

1

私はこの問題を以前に見てきましたが、いくつかのdiffernetの修正があります。 MaskTypeを "Date"または "None"に設定していますか? Dateを使用している場合、正しい数字でオートコンプリートするカスタムコードを記述する必要があります。 Noneを使用している場合は、4桁の年を強制して、オートコンプリート問題を効果的に排除できます。これはおそらく、入力を数字に制限して日付として入力を検証できるので、間違った世紀を自動補完することについて心配する必要はないので、あなたが行くことをお勧めするルートでしょう。

+0

である。私の解決策の質問に私の編集を参照してください。 Idkは良い方法があれば、これは私のために働いた。ご協力いただきありがとうございます。 – John