jQuery Datepickerを生年月日入力用に使用しています。jQuery datepickerの選択日が5歳未満の場合はdivを表示/追加
人の年齢が5歳未満の場合、入力フィールドの上にテキストを表示または追加したいとします。
私は変数として今日の日付を取得し、今日から5年を差し引いて、次に言う:選択した日付が今日と(今日の日付から5年間)の間にある場合、このメッセージを表示します。しかし、私はそうする方法を苦労している!あなたのDateFieldで
jQuery Datepickerを生年月日入力用に使用しています。jQuery datepickerの選択日が5歳未満の場合はdivを表示/追加
人の年齢が5歳未満の場合、入力フィールドの上にテキストを表示または追加したいとします。
私は変数として今日の日付を取得し、今日から5年を差し引いて、次に言う:選択した日付が今日と(今日の日付から5年間)の間にある場合、このメッセージを表示します。しかし、私はそうする方法を苦労している!あなたのDateFieldで
dateChange(と呼ばれるOnChangeイベントを追加)
function dateChange() {
var d = new Date();
var currYear = d.getFullYear(); -- Returns the year
var dateSelected = document.getElementfromId("<your Date Element ID>")
-- you can use parsing based on the date format you use in datePicker.
-- find the difference between currYear and year user choose
if (diffrence < 5){
-- write your code
}
}
あなたは、日付ピッカーのにonSelectイベントを使用することができます。残念ながら、onSelectは日付が選択されたときはいつでも、変更されていなくても起動します。これはdatePickerの設計上の欠陥です。onSelect(変更されていなくても)は常に発生し、変更の際には元の入力に対してイベントを発生させません。 (この例のコードを見ると、変更を聞いていますが、発生していません)。事態が変化したときに入力イベントを発生させるはずです(おそらく、通常の変更イベントまたはおそらくdatepicker特有のもの)。
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
任意のハンドラがjQueryを介して、フックアップのための基本となる入力の変化が発生します:あなたが好きなら、もちろん、あなたが入力火の変更イベントを行うことができます。しかし、再び、それは常にそれを発射する。あなたが実際の変更にのみ発砲したい場合は、以前の値を(おそらくデータを介して)保存して比較する必要があります。
次の機能を使用して、2つの日付の違いを調べます。
// datepart: 'y', 'm', 'w', 'd', 'h', 'n', 's'
Date.dateDiff = function(datepart, fromdate, todate) {
datepart = datepart.toLowerCase();
var diff = todate - fromdate;
var divideBy = { w:604800000,
d:86400000,
h:3600000,
n:60000,
s:1000 };
return Math.floor(diff/divideBy[datepart]);
}
ありがとうございました。 Ivは今、動作することを望んでいるが、プラグインによってdatepickerが追加されているので、OnChangeイベントを追加することはできません。私は何ができるのか知っていますか? 'function dateChange(){ var d = new Date(); アラート(d); var currYear = d.getFullYear(); // - 年を返します var dateSelected = document.getElementfromId( "eo-booking-field-26"); var selectedYear = dateSelected.substr(dateSelected.length - 4); var currYear5Years = currYear-5; if((SelectedYear currYear5Years)){ alert(selectedYear); } } –
Futwill
Ivはまた、これが唯一の年に焦点を当て、必要な他の部分では機能しないことを認識しました。 たとえば、もし彼らが2012年3月5日に生まれた(そして今日は2017年3月5日)なら、彼らはまだ5歳未満ですが、私のコードは年を比較しているだけなので、 – Futwill