2014-10-30 181 views
0

我使用jQuery自動完成插件的文本框:jQuery:自動完成後文本框文本更改事件?

$('#TargetArea').autocomplete({ 
    source: '@Url.Action("GetTarget", "Ads", new { type = "Zip", term = target })' 
    }); 

它工作正常。現在,我想要做的是:當文本框文本改變時,調用一個動作從數據庫獲取數據,然後在另一個div中顯示數據。

$('#TargetArea').change(function() { 
     var url = "/My/Test"; 
     var target = $("#TargetArea").val(); 
     $.post(url, { Target: target }, function (data) { 
      $("#resultId").html(data); 
     }); 
    }) 

但是,這種改變事件從未觸發。如果我註釋掉自動完成部分,那麼它工作正常。任何人都知道問題是什麼?或者,我應該怎麼做?

謝謝

+0

了'autocomplete'對象似乎有一個'change'屬性,因爲它用在這裏:http://stackoverflow.com/questions/6431459/jquery-autocomplete-trigger-change-事件 – 2014-10-30 18:38:35

回答

0

我認爲你應該使用autocomplete插件的change事件。

在這裏看到的文檔:http://api.jqueryui.com/autocomplete/#event-change

檢查它,我認爲它應該工作。

$("#TargetArea").autocomplete({ 
    source: '@Url.Action("GetTarget", "Ads", new { type = "Zip", term = target })', 
    change: function(event, ui) {} 
}); 
0

可以讓這個既

1 - 初始化與指定的更改回調的自動完成:

$('#TargetArea').autocomplete({ 
     source: '@Url.Action("GetTarget", "Ads", new { type = "Zip", term = target })', 
     change: function(event, ui) { 
     var url = "/My/Test"; 
     var target = $("#TargetArea").val(); 
     $.post(url, { Target: target }, function (data) { 
      $("#resultId").html(data); 
     }); 
     } 
    }); 

2-綁定事件監聽器autocompletechange事件:

$('#TargetArea').autocomplete({ 
    source: '@Url.Action("GetTarget", "Ads", new { type = "Zip", term = target })' 
    }); 

    $('#TargetArea').on("autocompletechange", function(event, ui) { 
          var url = "/My/Test"; 
          var target = $("#TargetArea").val(); 
          $.post(url, { Target: target }, function (data) { 
            $("#resultId").html(data); 
            }); 
          }); 

當字段模糊時,如果值已更改,則會觸發此操作。

來源:http://api.jqueryui.com/autocomplete/#event-change