Jquery Datepicker onselect调用函数

时间:2014-01-14 23:15:33

标签: javascript jquery html jquery-ui datepicker

当我的JQuery日期选择器选择日期和日期时,我需要调用这个函数:

function showUser() {
    // Retrieve values from the selects
    var DateFrom = document.getElementById('DateFrom').value;
    var DateTo = document.getElementById('DateTo').value;


    if (dtd=="" || dtm == "" || dfd == "" || dfm == "") {
        document.getElementById("txtHint").innerHTML="";
        return;
    }

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }

    xmlhttp.open("GET","/StreetHailDrivers.php?DateFrom="+DateFrom+"&DateTo="+DateTo,true);
    xmlhttp.send();
}

这是我的日期选择器:

  $(function() {
    $('.datepicker').datepicker({ onSelect: showUser(), minDate: -90, maxDate: "+1D" });
  });

如果我取出onSelect: showUser() datepicker工作正常,但没有发布数据,但如果我包含onselect,则datepicker不起作用。没有下降。

我还尝试了html中的onchange事件:

 <input type="text" class="datepicker"  name="DateTo" id="DateTo" onchange="showUser()" /> 

我该怎么办才能让它发挥作用?

1 个答案:

答案 0 :(得分:4)

jsFiddle Demo

主要问题是函数showUser未在分配了datepicker的作用域可用的作用域中定义。结果很可能是您在控制台中看到的错误:“未捕获的ReferenceError:未定义showUser”。导致错误时,将暂停所有脚本执行并且不构造datepicker。您应该确保datepicker对象可以访问此函数。

我相信它期待指向该参数的函数的指针。因此它应该是

onSelect: showUser

使用onSelect: showUser()会将onSelect的值设置为未定义的showUser的返回值。