YUI自动完成:itemSelectEvent迷失了IE6和IE7?

时间:2010-05-14 18:50:51

标签: autocomplete yui

我正在使用YUI自动完成功能(截至今天(2010年5月14日)使用加载程序加载的最新版本,看起来是2.8.1,具有以下选项:

ac = new YAHOO.widget.AutoComplete("mynode", "autocomp_node", 
              ac_ds, {typeAhead: true, forceSelection: true});

ac.itemSelectEvent.subscribe( function(type, args) { 
              alert("hey:" + args[2][1]); 
              $('#parent_id').val(args[2][1]);
});

itemSelectEvent捕获自动完成中的选择并填充父级的一些数据。

适用于FF,Chrome,Safari和IE8。然而,在IE6和IE7上,事件似乎永远不会触发。要复制:在自动填充字段中,允许它为您自动填充,然后按Enter键。这应该选择自动填充并转到下一个字段(这就是它在其他浏览器中的作用)。使用IE6和IE7似乎反而触发表单提交 - itemSelectEvent从不触发(或者可能在表单提交后触发?)。

有没有人见过这个?任何解决方法?

1 个答案:

答案 0 :(得分:2)

以下是YUI "AutoComplete Control: Searching Field A, Submitting Field B with itemSelectEvent"示例的摘录。实际上,这是适用的示例的“preventDefault”方面。也许您可以使用类似的东西阻止表单提交。但是,我不确定这是否会阻止其他事件被触发(即itemSelectEvent)。

// Rather than submit the form, 
// alert the stored ID instead 
var onFormSubmit = function(e, myForm) { 
   YAHOO.util.Event.preventDefault(e); 
   alert("Company ID: " + myHiddenField.value); 
}; 
YAHOO.util.Event.addListener(YAHOO.util.Dom.get("myForm"), "submit", onFormSubmit);