我正在为文本框使用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 :(得分:0)
我认为您应该使用自动完成插件的更改事件。
请参阅此处的文档:http://api.jqueryui.com/autocomplete/#event-change
检查一下,我认为它应该有用。
$( "#TargetArea" ).autocomplete({
source: '@Url.Action("GetTarget", "Ads", new { type = "Zip", term = target })',
change: function( event, ui ) {}
});
答案 1 :(得分: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);
});
});
当字段模糊时,如果值已更改,则会触发此操作。