2012-02-05 80 views
0

我想獲取datepicker值來更改選定的選項值。所以我必須使用像onchange這樣的事件來改變下一個值。但jQuery不支持onchange。我怎樣才能做到這一點?jQuery datepicker使用getXMLHTTP()

function gettime(str) { 

      var strURL="/Doctor/booking/gettime.jsp?datepicker="+str; 
      var req = getXMLHTTP(); 

      if (req) { 

       req.onreadystatechange = function() { 
        if (req.readyState == 4) { 
         // only if "OK" 
         if (req.status == 200) { 
          document.getElementById('datepicker').innerHTML=req.responseText; 
         } else { 
          alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
         } 
        } 
       } 
       req.open("GET", strURL, true); 
       req.send(null); 
      } 
     } 

<b>Date: <input type="text" id="datepicker" name="datepicker" readonly="true" change="gettime(this.value)"></b> 

的jQuery:

<script> 
$(document).ready(function() { 
    $(function() { 
     $("#datepicker").datepicker({dateFormat: 'yy-mm-dd', 
      maxDate: '+1m', 
      minDate: 'Now', 
      beforeShowDay: noSundays 
     }); 
    }); 
}); 
function noSundays(a) { a=a.getDay(); return[a>0&&a<7,""]; } 

回答

1

您已經包含在你頁面的jQuery做AJAX我們做到了在1999年,當微軟首次推出在Internet Explorer 5中的XMLHTTP ActiveX對象的方式嗎?我簡直不敢相信我的眼睛。

那麼,讓我們做到這一點通過利用我們所使用的框架所提供給我們,擺脫這種gettime功能:

<b> 
    Date: 
    <input type="text" id="datepicker" name="datepicker" readonly="true" /> 
</b> 

然後:

<script type="text/javascript"> 
    $(function() { 
     $("#datepicker").datepicker({dateFormat: 'yy-mm-dd', 
      maxDate: '+1m', 
      minDate: 'Now', 
      beforeShowDay: noSundays, 
      onSelect: function(dateText, inst) { 
       $.ajax({ 
        url: '/Doctor/booking/gettime.jsp', 
        type: 'GET', 
        data: { datepicker: $(this).val() }, 
        success: function(result) { 
         $('#datepicker').val(result); 
        } 
       }); 
      } 
     }); 
    }); 

    var noSundays = function(a) { 
     var day = a.getDay(); 
     return [day > 0 && day < 7, '']; 
    }; 
</script> 
+0

起源url是strURL =「/ Doctor/booking/gettime.jsp?datepicker =」+ str;我需要jsp?datepicker。因爲我會request.Parameter(「datepicker」);我如何改變ajax? – user1190842 2012-02-07 09:47:24

+0

@ user1190842,當您使用$ .ajax並指定'type:'GET'時,jquery將自動使用'data'變量來格式化查詢字符串,以便將具有期望值的請求發送到服務器。 – 2012-02-07 19:02:11

+0

對不起,我無法獲取日期值,因爲它可能是jQuery。 – user1190842 2012-02-08 09:23:00