1
4
看看misc/autocomplete.js。
输入的value属性用于创建ACDB,它是该自动完成路径(URI)的值缓存。在drupal.jsac函数中用于绑定元素的keydown、keyup和blur事件,并触发autocomplete ajax操作(该操作将其值缓存到该元素的acdb对象中),打开弹出窗口等。
您需要做的是更改输入的值并重新附加行为。通过删除autocomplete文本字段输入元素上的“.autocomplete processed”类,然后调用drupal.attachBehaviors(thatinputeElement),可以重新附加该行为。 这可能不起作用。如果您一次又一次地将相同的行为附加到同一个元素上,情况可能会非常糟糕。创建不同的自动完成字段,并根据选择的值简单地隐藏和显示它们可能更为明智。这仍然需要在隐藏和显示小部件时调用drupal.attachBehaviors,但是如果开关多次发生,相同的行为将保持附加状态,并且您不会冒险多次将相同的行为附加到元素。 |
2
3
嗯,作为参考,我提出了一个有效的黑客程序,但是如果有人能想出更好的解决方案,我会很高兴听到它。
此代码来自 ding_campaign module . 如果您需要做类似的事情,请随时查看代码。都是GPL2。 |
3
1
它应该简单到通常改变“隐藏”自动完成的“值”。 自动完成窗体字段旁边的输入元素。IE.
|
4
1
Drupal的工作解决方案 五
|