在我的表单中,我使用的是jquery的自动完成功能。它位于文本框上,但使其看起来像下拉列表。它很棒。
我在此文本框中使用.change调用来执行其他操作。在.change调用/函数中,我调用另一个函数。我的问题是,在我的自动填充字段中的值实际获得我选择的值之前,其他函数调用似乎已触发。
$('#account1').change(function(){
$('#sub_account1').html('');
$('#object_code1').html('');
$('#sub_object_code1').html('');
$('#kfs_acct_1').val('');
change_object_codes(1);
});
例如,在我的文本字段中输入“H”并从显示的自动完成列表中选择“Hello World”。在“Hello World”显示/设置在我的文本框之前,change_object_codes(1)将触发。 change_object_code()中的代码需要处理$('#account1')。val(),但它没有看到它,因为它尚未设置。感叹!
我发现是否发出警报('哟');在我的.change块的第一行,它减慢了它,所以$('#account1).val()在change_object_code触发之前被设置。但是,显然,我不希望那样。
我想知道是否有人有办法阻止change_object_codes()在我的文本框获取我选择的值之前运行。
提前致谢
答案 0 :(得分:1)
如果你在这里查看jquery的autocomplete api:http://api.jqueryui.com/autocomplete/#event-change你会发现你需要使用它的事件更改处理。
所以,当你调用自动完成时(btw,也应该在你的例子中),它应该是这样的:
$( "#account1" ).autocomplete({
change: function( event, ui ) {
change_object_codes(1);
}
});