Datepicker 不会根据按钮单击而更改?

Datepicker not changing based on a button click?

我有两个单选按钮,如下所示:-

<input type="radio" id="Users_gender_0" name="Users[gender]" value="1" onclick="getcaleder();" >Male
<input type="radio" id="Users_gender_1" name="Users[gender]" value="2" onclick="getcaleder();" >Female 
<input type="text" name="date_of_birth" id="Users_date_of_birth">

我想根据选择男性或女性在 date_of_birth 文本字段中加载两个不同的日历。

  $(document).ready(function () {

      $("#Users_gender_0").prop("checked", true);

      var dt = new Date();
      var day = dt.getDate();
      var month = dt.getMonth() + 1;
      var girlyear = dt.getFullYear() - 18;
      var boyyear = dt.getFullYear() - 21;

      $("#Users_date_of_birth").datepicker({
          changeMonth: true,
          changeYear: true,
          dateFormat: "yy-mm-dd",
          yearRange: '-50y:c+nn',
          maxDate: boyyear + '-' + month + '-' + day
      });


  });

  function getcaleder() {
      var gender = $('input[name= "Users[gender]" ]:checked').val();

      var dt = new Date();
      var day = dt.getDate();
      var month = dt.getMonth() + 1;
      var girlyear = dt.getFullYear() - 18;
      var boyyear = dt.getFullYear() - 21;

      if (gender == 0) {

          var y = boyyear;
      } else {
          var y = girlyear;
      }

      $("#Users_date_of_birth").datepicker({
          changeMonth: true,
          changeYear: true,
          dateFormat: "yy-mm-dd",
          yearRange: '-50y:c+nn',
          maxDate: y + '-' + month + '-' + day
      });
  }

我给了上面的功能。在准备好文档时,我检查了男性性别并加载了一个日历,但是当单击女性时,则给出了更改日历的功能,但日历没有更改。为女性加载但与性别相同的日期选择器已加载。

I want calender till 1994 for males and till 1997 for females.

请大家帮忙。

试试这个 http://jsfiddle.net/fnRcL/393/

<input type="radio" checked="checked" name="Users[gender]" value="1" onclick="getcalender()" >Male
<input type="radio" name="Users[gender]" value="2" onclick="getcalender()" >Female 
<input type="text" name="date_of_birth" id="date_of_birth">

JS代码:

$(document).ready(function () {

    $("#Users_gender_0").prop("checked", true);

    var dt = new Date();
    var day = dt.getDate();
    var month = dt.getMonth() + 1;
    var girlyear = dt.getFullYear() - 18;
    var boyyear = dt.getFullYear() - 21;

    $("#date_of_birth").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd",
        yearRange: '-50y:c+nn',
        maxDate: boyyear + '-' + month + '-' + day
    });


});

getcalender = function() {
    $( "#date_of_birth" ).datepicker( "destroy" )
    var gender = $('input[name= "Users[gender]" ]:checked').val();

    var dt = new Date();
    var day = dt.getDate();
    var month = dt.getMonth() + 1;
    var girlyear = dt.getFullYear() - 18;
    var boyyear = dt.getFullYear() - 21;

    if (gender == 1) {
        var y = boyyear;
    } else {
        var y = girlyear;
    }

    $("#date_of_birth").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd",
        yearRange: '-50y:c+nn',
        maxDate: y + '-' + month + '-' + day
    });
};

你可以在你的函数中这样尝试

      $("#Users_date_of_birth").datepicker("destroy");

      $("#Users_date_of_birth").datepicker({
          changeMonth: true,
          changeYear: true,
          dateFormat: "yy-mm-dd",
          yearRange: '-50y:c+nn',
          maxDate: y + '-' + month + '-' + day
      });

还要检查这个 link https://jsfiddle.net/km9attz6/1/