基于前两个字段的选择更新另一个字段不能正常工作

时间:2014-12-11 10:26:02

标签: jquery jquery-ui

查看下面的代码段并帮我解决问题。使用JQuery DatePicker填充Date1。根据术语选择值,Date2将更改。

同时找到JSFiddle

问题

  1. 当我选择4,6,12时它工作正常。但在那之后,如果我再次选择4或6则不起作用。
  2. 在选择Date1和Term之后,如果我再次更改Date1,则date2不会更新。
  3. $(document).ready(function() {
        $('#date1').datepicker({
          dateFormat: "yy-mm-dd",
                minDate: 0
                
        });
       $('#term').change(function(){
           var date2=$('#date1').datepicker('getDate');
           var term=$('#term').val();
           switch(term){
               case 'T':
                    date2.setMonth(date2.getMonth() + 4,date2.getDate());
                    break;
               case 'H':
                    date2.setMonth(date2.getMonth() + 6,date2.getDate());
                    break;
               case 'Y':
                    date2.setMonth(date2.getMonth() + 12,date2.getDate());
                    break;
                default: 
                   alert('Please Select an Interval');  
           }
               $('#date2').datepicker('setDate', date2);
                    //sets minDate to dt1 date + 1
               $('#date2').datepicker('option', 'minDate', date2);
        });
        $('#date2').datepicker({
          dateFormat: "yy-mm-dd"
        });
        $("#date2").prop('disabled', true);
     });
    <link href="https://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="https://code.jquery.com/ui/1.9.2/jquery-ui.min.js"></script>
    
    Date1:<input type="text" id="date1"/>
    Interval:<select id="term">
    <option>-Select-</option>
       <option value="T">Four Month</option>
       <option value="H">Six Month</option>
       <option value="Y">Twelve Month</option>
    </select><br/><br/>
    Date2:<input type="text" id="date2"/>

1 个答案:

答案 0 :(得分:0)

删除$(&#39;#date2&#39;)。datepicker(&#39;选项&#39;,&#39; minDate&#39;,date2);.它就像一个魅力。

更新了代码段

&#13;
&#13;
$(document).ready(function() {
    $('#date1').datepicker({
      dateFormat: "yy-mm-dd",
            minDate: 0
            
    });
   $('#term').change(function(){
       var date2=$('#date1').datepicker('getDate');
       var term=$('#term').val();
       switch(term){
           case 'T':
                date2.setMonth(date2.getMonth() + 4,date2.getDate());
                break;
           case 'H':
                date2.setMonth(date2.getMonth() + 6,date2.getDate());
                break;
           case 'Y':
                date2.setMonth(date2.getMonth() + 12,date2.getDate());
                break;
            default: 
               alert('Please Select an Interval');  
       }
           $('#date2').datepicker('setDate', date2);
            
    });
    $('#date2').datepicker({
      dateFormat: "yy-mm-dd"
    });
    $("#date2").prop('disabled', true);
 });
&#13;
<link href="https://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.min.js"></script>

Date1:<input type="text" id="date1"/>
Interval:<select id="term">
<option>-Select-</option>
   <option value="T">Four Month</option>
   <option value="H">Six Month</option>
   <option value="Y">Twelve Month</option>
</select><br/><br/>
Date2:<input type="text" id="date2"/>
&#13;
&#13;
&#13;