0

ユーザーフォームがあります。ユーザーが生年月日を入力すると、JQUERYで年齢を計算し、35歳以上の場合は非表示のdivが表示されます。

これまでのところ、私はこれをつなぎ合わせることができました

     $(document).ready(function() {
      $('#dob').datepicker({
    onSelect: function(value, ui) {
        var today = new Date(), 
            dob = new Date(value), 
            age = new Date(today - dob).getFullYear() - 1970;

        $('#age').text(age);
    },
    maxDate: '+0d',
    yearRange: '1960:2010',
    changeMonth: true,
    changeYear: true
});


 if ($(age).val() >= 35) {
    // do something
    alert("35");
}else{
    alert("not 35");
}

   });  

しかし、ページの読み込み時にアラートが表示されます。間違った場所に何かを置いただけだと思いますが、何がわかりません。何が機能していたかをテキストで伝えるためだけにアラートを配置しました。これをshow()に置き換えて機能させます。公平を期すために、実際には日付ピッカーを持っていることを気にしませんでしたが、それは私が見つけた例にありました。

ありがとう。

4

2 に答える 2

0

あなたの状態は見当違いであり、または$(age)の代わりに使用していましたage$('#age').val()

$(document).ready(function () {
    $('#dob').datepicker({
        onSelect: function (value, ui) {
            var today = new Date(),
                dob = new Date(value),
                age = new Date(today - dob).getFullYear() - 1970;

            $('#age').text(age);

            if (age >= 35) {
                // do something
                alert("35");
            }
            else {
                alert("not 35");
            }
        },
        maxDate: '+0d',
        yearRange: '1960:2010',
        changeMonth: true,
        changeYear: true
    });
});

ちなみに、これは年齢の正しい計算ではありません。あなたは年だけを使います。

于 2013-02-22T23:37:14.043 に答える
0

あなたはブロックを持っています:

if ($(age).val() >= 35) {
    // do something
    alert("35");
}else{
    alert("not 35");
}

onSelect関数の終了後。そのブロックをonSelect変更イベントハンドラーに移動するか、配置する必要があります。

例えば:

...
onSelect: function(value, ui) {
    var today = new Date(), 
        dob = new Date(value), 
        age = new Date(today - dob).getFullYear() - 1970;

    $('#age').text(age);

    if (age >= 35) {
        // do something
        alert("35");
    }else{
        alert("not 35");
    }
},
...

編集 省略記号は、元の例から変更されていないコードを省略したことを示しています。完全な例は次のとおりです。

$(document).ready(function() {
    $('#dob').datepicker({
        onSelect: function(value, ui) {
          var today = new Date(), 
              dob = new Date(value), 
              age = new Date(today - dob).getFullYear() - 1970;

          $('#age').text(age);

          if (age >= 35) {
              // do something
              alert("35");
          }
          else {
              alert("not 35");
          }
        },
        maxDate: '+0d',
        yearRange: '1960:2010',
        changeMonth: true,
        changeYear: true
    });    
});
于 2013-02-22T23:38:27.513 に答える