Ajax函数赋予无法读取属性' length'未定义的

时间:2013-06-12 04:22:36

标签: ajax

此功能在搜索div imagesearch所在的同一页面上运行正常。 如果我在网站上的另一个网站上,生病了

无法读取undefined的属性'length'。

控制台点放置第27行,即if语句从if(q.length.开始。

真的不知道这个问题是什么。有什么想法吗?

function reloadSearch() {
       if (!isLoading) {
          var q = $('#imagesearch').val();
          if (q.length >= 2) {
             isLoading = true;
             $.ajax({
                type: 'GET',
                url: 'core/flickr.php',
                data: 'search=' + q,
                dataType: 'html',
                beforeSend: function () {
                   $('#imageresult').html(
                      '<img src="img/loading45.gif" alt="loading..." />');
                   if (!q[0]) {
                      $('#imageresult').html(
                         '');
                      return false;
                   }
                },
                success: function (response) {
                   $('#imageresult').html(
                      response);
                }
             });
             // enforce the delay
             setTimeout(function () {
                isLoading = false;
                if (isDirty) {
                   isDirty = false;
                   reloadSearch();
                }
             }, delay);
          }
       }
    };

    var delay = 1000;
    var isLoading = false;
    var isDirty = false;

        $(document).ready(function () {
           reloadSearch();
           $('#imagesearch').keyup(function () {
              isDirty = true;
              reloadSearch();
           });
        });

1 个答案:

答案 0 :(得分:1)

变化:

if (q.length >= 2) {

if (q !== undefined && q.length >= 2) {

这将停止从未定义的无法读取值...如果您在.Net中编码,这类似于空引用异常。