ユーザーが日付を入力する標準の<input>
テキストボックスがあります。+
ユーザーが値を入力したり-
、値から 1 日を加算/減算したりできる機能を追加したいと思います。onkeypress
この関数を呼び出すイベントを追加しました:
function adjustDate( element ) {
var e = event || window.event;
var code = e.charCode || e.keyCode;
switch( code ) {
case 43: // user pressed "+" (plus)
if( isDate( element.value ) ) {
var d = new Date();
d.getDate( element.value );
d.setDate( d.getDate() + 1 );
element.value = ( d.getMonth() + 1 ) + "/" + d.getDate() + "/" + d.getYear();
} else {
var today = new Date();
element.value = ( today.getMonth() + 1 ) + "/" + today.getDate() + "/" + today.getYear();
}
if( e.preventDefault ) e.preventDefault();
else e.returnValue = false;
return false;
element.select();
break;
case 45: // user pressed "-" (minus)
// ...
}
}
私がGoogleから引っ張ってきたisDate
機能ですが、必要に応じて投稿することもできます。
私の問題は、作品が一度、次に灘です。たとえば、テキストボックスの値が の場合、10/1/2009
を押す+
と になりますが10/2/2009
、その後のプラスには影響しません。次に、押す-
と に9/30/2009
戻るのではなく に移動し10/1/2009
、その後のマイナスキーの押下を無視します。
私はIE8でテストしています。これは内部 Web アプリであるため、他のブラウザーが適していますが、必ずしも必要というわけではありません。私は現在、jQuery やその他のフレームワークを使用していません。これはおそらくやり過ぎなので、純粋な Javascript ソリューションを探しています。実際、この機能は単に「あると便利」であり、私がもっと時間を費やす必要があるものではありません.
私は何かを見逃しているか、完全に間違っていることを知っています。それで、それはどれですか?