Drupal自动完成提交选择建议

Rya*_*ice 2 autocomplete drupal-7

我已按照本网站上的教程:http://thedrupalblog.com/creating-autocomplete-field-using-forms-api-and-menu-callback,让我的自动完成工作得很好.

我不确定如何做并且似乎无法在线查找的是当用户点击建议而不是简单地完成该字段时提交表单.

提前致谢.

小智 10

以下代码将覆盖"Drupal.jsAC.prototype.select"函数,这可以在任何JS文件中使用而无需修改misc/autocomplete.js.

 $(document).ready(function(){
      Drupal.jsAC.prototype.select = function (node) {
        this.input.value = $(node).data('autocompleteValue');
        if(jQuery(this.input).hasClass('auto_submit')){
          this.input.form.submit();
        }
      };
    });
Run Code Online (Sandbox Code Playgroud)


Tre*_*rey 6

这可能不是最好的"drupal"方式,也许有人可以改进它...

在你的'misc/autocomplete.js'文件中找到:

Drupal.jsAC.prototype.select = function (node) {
  this.input.value = $(node).data('autocompleteValue');
}; 
Run Code Online (Sandbox Code Playgroud)

并将其更改为:

Drupal.jsAC.prototype.select = function (node) {
  this.input.value = $(node).data('autocompleteValue');
  if(jQuery(this.input).hasClass('auto_submit')){
      this.input.form.submit();
  }
};
Run Code Online (Sandbox Code Playgroud)

然后在您的表单项上添加:

'#attributes' => array('class'=> array('auto_submit')),
Run Code Online (Sandbox Code Playgroud)

这将导致表单提交,无论用户选择如何选择(输入按钮或鼠标单击)

编辑:4年后,我得到了投票,并意识到这需要更新...基本上@Azhar是正确的,而不是编辑现有的文件,这个代码应该添加到autocomplete.js后加载的新JS文件.

正如您编辑核心时一样,您必须担心核心安全更新会覆盖您的更改并使您的网站损坏,并且您又争先恐后地重新修复它.