JQuery DatePicker использовать getXMLHTTP () - PullRequest
0 голосов
/ 05 февраля 2012

Я хочу получить значение DatePicker, чтобы изменить значение выбранного параметра. Поэтому я должен использовать событие вроде onchange, чтобы изменить следующее значение. Но jQuery не поддерживает onchange. Как я могу это сделать?

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 Ответ

1 голос
/ 05 февраля 2012

У вас есть jquery на вашей странице, и вы выполняете AJAX так, как мы это делали в 1999 году, когда Microsoft впервые представила объект ActiveX XMLHTTP в Internet Explorer 5?Я не могу поверить своим глазам.

Итак, давайте сделаем это, воспользовавшись преимуществами того, что мы предлагаем для этого, и избавившись от этой функции 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...