【发布时间】:2011-05-23 14:57:24
【问题描述】:
我正在尝试制作一个管理界面,人们可以在其中选择不同类型的模型,然后将它们保存为新对象。
Event.observe($('modelSearch'),'focus',function(){
new Ajax.Autocompleter( 'modelSearch', 'autoCompleteModel', 'xxx',
{
paramName: "q",
indicator: "makeWaitPic",
parameters: "previusId=" + $( 'previusModelId' ).getValue(),
afterUpdateElement: function( text, li )
{
if( li.id != '' )
$( 'modelId' ).value = <AjaxReturnValue>;
else
$( 'modelSearch' ).value = '';
}
} );
});
我遇到的问题是,当我有一个依赖于另一个自动完成的自动完成时,我遇到了问题。第一个自动完成让您选择一个模型并将选定的模型 ID 存储在一个隐藏的输入字段中。第二个自动完成正在使用此值,以便它知道应该查看哪个数据库表。
问题 1:如果我在 dom:load 上创建两个自动完成,它们将在输入值设置之前读取它。因此第二个自动完成将不起作用。
问题 2:如果我在 observe:focus 上创建自动完成,他们每次都会读取新的值,但每次关注自动完成字段时也会创建它们自己的多个实例。
我可以以任何方式使自动完成每次使用时都读取输入值并且只初始化一次吗?或者我可以以任何方式销毁保存自动完成的对象,然后下次创建一个新对象吗?
我该如何解决这个问题,有什么想法吗?
【问题讨论】:
标签: ajax autocomplete prototypejs