我正在使用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从不触发(或者可能在表单提交后触发?)。
有没有人见过这个?任何解决方法?
答案 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);