2012-01-27 4 views
2

私は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

+0

どのようにplacholder値を提供していますか?実際に 'placeholder'属性を使用していますか?おそらく、あなたのHTMLを投稿することは有益でしょう。jsFiddleにテストケースを置くことをお勧めします。 – JMM

+0

はい、プレースホルダ属性を使用します。 HTMLはかなり単純です: '' – BobRodes

答えて

0

は、私はあなたが良いラベルを使用して、空白の入力を残したほうが良いと思います。 「HTML5」には実際のプレースホルダ機能もあります。

+0

私はそれを行うことができます。私はまだWeb開発では経験の浅いですし、そこには避けるべき機能がたくさんあることははっきりしています。例えば、Internet Explorer。 :)私はできればこれの底まで行きたいです。 – BobRodes

+0

私が言ったとき、私はあなたがプレースホルダを提供するために 'value =" "'を設定していると思いました。私は代わりにラベルを使うことを勧めていた。 'placholder =" "'でそれを行うことは確かに正当ですが、サポートがどれだけ良いか分かりません。私はここでも何が起きているのか不思議です。私はそれの要点を得るが、私は物語に続いて少し問題を抱えている。私は「私の場合、入力ボックスの値がプレースホルダの値になる」とは分かりません。手段。特にjsFiddleにデモを投稿できる場合に役立つでしょうか?本当に明確なステップを再現してください。どのようなUAがこのようなことをしますか? – JMM

関連する問題