私はこれをかなり長い間探していますが、十分な答えが得られませんでした。
jquery検証エンジンには欠陥があります。class属性を使用して検証ルールを配置するのは逆のようです。
私は次のような超軽量のものが欲しいです:
小さなエラーメッセージも表示し、ユーザーがフォームを送信できないようにします。
ユーザーが行うエラーは次のとおりです。彼は日付フィールドにタブで移動し、間違った形式を手動で入力してから、フォームを送信します。
コード:
<input id="first" type="text" value="" />
<input id="hello" type="text" value="234.12.1984" />
$("#hello").datepicker();
$("#first").focus();
(最初は非表示の)エラーメッセージ(たとえば、IDが「error」)を追加して、次のようなものを試してください。
$('form').submit(function(event){
try{
var d = $('#hello');
$.datepicker.parseDate(d.datepicker( "option", "dateFormat" ), d.val());
}catch(e){
event.preventDefault();
$('#error').show();
return false;
}
});
(たぶん、クラス/ IDを使用して、もちろんどの形式かを言います)。ワーキングフィドル
編集
その後、日/月の先行ゼロが欠落している有効な日付が受け入れられたというOPのコメントに応えて、私の提案は単にそのような日付を修正することです。有効な日にエラーをスローするよりもユーザーフレンドリーだと思います。たとえば、try
ブロックを次のように変更します
var format = d.datepicker( "option", "dateFormat" );
var tmp_date = $.datepicker.parseDate(format, d.val());
d.val( $.datepicker.formatDate(format, tmp_date) );
私が持っている更新フィドル私も(それがデータを提出するように、私は入力に名前を追加しました)、それを表示するには、コンソールに提出されることになるデータを記録するために余分なコードを追加しました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加