[解決済み] jQueryのバリデータとdatepickerのクリックが検証されない
質問
テキスト入力を検証するためにjquery validatorを使っています。問題は、送信をクリックすると、すべてのエラーメッセージが正しく表示されることです。しかし、datepickerの入力では、エラーメッセージを消去するために、datepickerを2回選択する必要があります。2回目のクリックでエラーメッセージが消えます。
どこかで、datepickerに'on'イベントを使用することについて読んだので、それを試してみましたが、違いはありませんでした。正しくコード化されていないようです。私は、invalidとsuccessクラスがバリデータスクリプトの一部であると仮定しています。試してみる価値はあります。
ここで何が起こっている可能性があるのか。ありがとうございます。
サイチャート・コード
<script type="text/javascript">
$(function() {
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: '2011:2037',
dateFormat: 'dd/mm/yy',
minDate: 0,
defaultDate: null
}).on('changeDate', function(ev) {
if($('#datepicker').valid()){
$('#datepicker').removeClass('invalid').addClass('success');
}
});
});
</script>
htmlコード
<label for"datepicker">
<input id="datepicker" name="datepicker" type="text" />
</label>
バリデータ関連コード
ルール/メッセージセクション
datepicker:
{
required: true,
date: true
},
datepicker:
{
required: " * required: You must enter a destruction date",
date: "Can contain digits only"
}
解決方法は?
OPを引用します。
1回のクリックで選択され、正しくデータが入力されます。2回目のクリックでエラーメッセージが消えます。
それは、通常、バリデーションが発生するのは
keyup
と
blur
イベントを使用します。 キーボードではなく、日付ピッカーでフィールドを操作しているため、通常のトリガーイベントを妨害しているのです。
あなたのコードは補正するはずなのに、オーバーキルになっています...。
$(function() {
$("#datepicker").datepicker({ ... })
.on('changeDate', function(ev) {
if($('#datepicker').valid()){
$('#datepicker').removeClass('invalid').addClass('success');
}
});
});
を呼び出すだけです。
.valid()
メソッドを呼び出します。
$(function() {
$("#datepicker").datepicker({ ... })
.on('changeDate', function(ev) {
$(this).valid(); // triggers the validation test
// '$(this)' refers to '$("#datepicker")'
});
});
しかし、これでは基本的に以前と同じです。
とは何ですか?
changeDate
はどうなっているのでしょうか? これはdatepickerのプラグインで定義されているものですか? これは標準的なjQueryのイベントではないので、おそらくすべての問題です。 標準の
change
イベントの代わりに....
$(function() {
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: '2011:2037',
dateFormat: 'dd/mm/yy',
minDate: 0,
defaultDate: null
}).on('change', function() {
$(this).valid(); // triggers the validation test
// '$(this)' refers to '$("#datepicker")'
});
});
関連
-
[解決済み】JSONパースエラー シンタックスエラー 予期せぬ入力の終了
-
[解決済み] .NET 4.5のMSAjaxとWebFormsJSのドキュメントはどこにあるのでしょうか?
-
[解決済み] ネストした多次元のjsonオブジェクトの書き方
-
[解決済み] jQuery の jquery-1.10.2.min.map が 404 (Not Found) を誘発する。
-
[解決済み] jQuery Mobileのボタンを無効にする
-
[解決済み] セレクトボックスのオプションをすべて削除してから、オプションを1つ追加して、jQueryで選択するにはどうすればよいですか?
-
[解決済み] javascript(またはjQuery)を使って::beforeや::afterなどのCSS疑似要素を選択し、操作する。
-
[解決済み] jQuery チェックボックスの変更とクリックイベント
-
[解決済み] jQueryでマウスの左クリックと右クリックを区別する方法
-
[解決済み] jQuery UI DatePicker - 日付フォーマットの変更
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Chrome Developer ToolsでリソースがDocumentと解釈され、MIMEタイプapplication/jsonの警告で転送される。
-
[解決済み】jQueryでクリックされた要素のIDを取得する方法
-
[解決済み] jQueryのディファレンシャルとプロミス - .then() vs .done()
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み] リーフレット - 既存のマーカーを検索したり、マーカーを削除するには?
-
[解決済み] jQuery.whenの理解
-
[解決済み] jquery ui Dialog: 初期化前のダイアログでメソッドを呼び出せない
-
[解決済み] jQueryを使って要素のIDを取得するにはどうすればよいですか?
-
[解決済み] jQueryのinit関数を設定する
-
[解決済み] jQueryで背景画像をアニメーションで変化させる