0

keypressイベントの日付入力フィールドから現在の値を取得する方法はありますか?keypressイベントのテキスト入力フィールドでjQuery.val()関数またはストレートjavascript .valueを問題なく使用しましたが、日付入力フィールドでこれらのいずれかを試してみると(chromeなどのそれをサポートするブラウザーで) )、空の文字列を取得します-有効な日付が入力されるまで、値は設定されないようです。

この機能を使用して、ユーザーが日付を110712などの6桁で入力できるようにし、入力時にスラッシュを自動的に追加して11/07/12にします。もちろん、プレーンテキスト入力を使用することもできますが、それをサポートするブラウザーで日付タイプフィールドが表示するポップアップ日付ピッカーが気に入っています。

編集:おそらく私は自分が何をしようとしていたのかはっきりしていませんでした。日付入力フィールドに接続されたキープレスハンドラー内から、ユーザーが現在フィールドに入力した内容を取得したいと思います。たとえば、ユーザーがすでに「11」と入力してから「0」と入力した場合、フィールドの現在の値が「11」であることを確認できるようにします。基本的なテキスト入力(または日付入力フィールドをサポートしていないブラウザー)では、keypressイベントハンドラー内から.val()または.valueを呼び出すことができ、結果は「11」になります。ただし、日付入力フィールドをサポートするブラウザーでは、val()または.valueを呼び出すときに取得するのは「」だけです。

4

2 に答える 2

1
$("#clickme").keypress(function(event){
    alert(event.timeStamp);
  alert(new Date(event.timeStamp));

    var fullDate = new Date()
console.log(fullDate);
//Thu May 19 2011 17:25:38 GMT+1000 {}

//convert month to 2 digits
//  var twoDigitMonth = ((fullDate.getMonth().length+1) === 1)? (fullDate.getMonth()+1) : '0' + (fullDate.getMonth()+1);

 //  var currentDate = fullDate.getDate() + "/" + twoDigitMonth + "/" + fullDate.getFullYear();
 // console.log(currentDate);
    // $("#clickme").val(currentDate);
//08/11/2012
});

jsfiddleの実例

上記の例では、current date on keypress event

于 2012-11-07T19:17:59.163 に答える
1

アップデート:

残念ながら、これはできないように思われます。input [type = "date"]は、オプションがテキストボックスではなく、履歴内のすべての日付である選択を検討してください。 http://www.html5tutorial.info/html5-date.php 上記のリンクは、他のブラウザがまさにこの方法で実装していることを示しています。テキストボックスに有効な日付が入るとすぐに、.val()がその値を取得することに注意してください。

input [type="text"]とその横にある小さなinput[type= "date"]の両方を使用してハイブリッドを実現し、変更時にその値をテキストボックスにダンプします。

実例: http: //jsfiddle.net/WaAcU/(これは検証を行わず、セレクターをテキストボックスにダンプするだけです)

元の回答:

JQueryキープレスハンドラーを使用します。

$(dateField).keypress(function(){
    ...your validation code...
});​

簡単な例: http: //jsfiddle.net/zUMHr/

于 2012-11-07T19:20:06.250 に答える