私は2つの日付入力で使用している簡単なdatepickerを持っています。コードは次のとおりです。Datepicker:escを押すとプレースホルダテキストが値として保持されます
$('input.isDate').datepicker({
numberOfMonths: 1,
onSelect: function() {
$(this).removeClass('placeholder'); //default is to keep placeholder style format
},
onClose: function() {
$(this).focus(); //otherwise focus goes to neverneverland
}
});
Datepickerが注目しています。 2つの.isDate入力には、「Date」のプレースホルダ値があります。
問題は、日付ピッカーにあるときにエスケープキーを押した場合に発生します。意図した動作は、日付ピッカーを閉じて、エントリポイントのボックス内のテキストを復元することです。私の場合、入力ボックスの値はプレースホルダの値になります。この時点でボックスを離れると、プレースホルダプロンプトではなく、厳密な値として「Date」という単語がボックスに残されているため、フィールドレベルの日付検証が実行されます。
私は、ユーザーがボックスを離れるときにテキスト値を空白にすることで対処できましたが、日付を手動で入力するために日付ピッカーから脱出するときにそのテキストを消去する必要があります。私は、これを取り除くためにイベントを使用する試みを数多く行ってきましたが、どれもうまくいきませんでした。私はキー入力でescをトラップし、datePicker自体のcreate、beforeDisplay、onSelectおよびonCloseイベントを試しました。これらのすべてのケースでは、ボックスの値はまだ ""でした。明らかに、日付ピッカーはすべてのビジネスを終えた後にボックスの価値を設定します。このデザインではプレースホルダは考慮されていません。おそらくバグでしょうか?私たちはWhitelabelスキンを使用しているので、多分彼らは何らかの方法で日付ピッカーを妨害しているでしょうか?とにかく、私は回避策や説明に感謝します。私はどちらかの多くを見つけることができませんでした。アプリケーションの詳細を知らなくてもTIA
どのようにplacholder値を提供していますか?実際に 'placeholder'属性を使用していますか?おそらく、あなたのHTMLを投稿することは有益でしょう。jsFiddleにテストケースを置くことをお勧めします。 – JMM
はい、プレースホルダ属性を使用します。 HTMLはかなり単純です: '' – BobRodes