相关疑难解决方法(0)

如何在jQueryUI中手动触发自动完成"select"事件?

我正在使用jQueryUI自动完成,并且我有一个映射到select事件的函数,例如:

$("#someId").autocomplete({
    source: someData,
    select: function (event, ui) { ... },
    focus: function (event, ui) { ... }
});
Run Code Online (Sandbox Code Playgroud)

我有一个特例:用户专注于自动完成下拉列表中的项目(但未选中它),我需要从另一个函数手动触发select事件.这可能吗?如果是这样,怎么样?

jquery jquery-ui jquery-ui-autocomplete

33
推荐指数
4
解决办法
5万
查看次数

为什么我的Capybara/Poltergeist测试不能从jQuery自动完成字段中选择?


更新:经过我自己的大量艰苦工作,我已经解决了这个问题.我很高兴成为任何需要帮助的人的资源.这是我工作设置的要点.


我已经尝试了我能找到Google和SO的所有解决方案.以下是我尝试过的一些不同的事情:

page.execute_script %Q{$('#{selector}').val('#{value}').trigger('keydown')}
Run Code Online (Sandbox Code Playgroud)

fill_in field, with: options[:with]
page.execute_script %Q{ $('##{field}').trigger('focus') }
page.execute_script %Q{ $('##{field}').trigger('keydown') }
Run Code Online (Sandbox Code Playgroud)

这是失败的:

page.should have_selector('ul.ui-autocomplete li.ui-menu-item a')
Run Code Online (Sandbox Code Playgroud)

但是当我在Firebug中查看并在浏览器中测试它时,它肯定存在.

以下是所有细节,包括上述内容的重述.请记住,自动填充字段在浏览器中正常工作.

listing_integration_spec.rb

require "spec_helper"

describe "Listing Integration" do

  let!(:user) { login_user }

  it "lets a user add information listing", js: true do
    listing = create(:listing, user: user)
    click_link('Additional Information')
    click_link('Create')
    fill_autocomplete('listings_search', with: listing.item_id)
  end

end
Run Code Online (Sandbox Code Playgroud)

spec/support/feature_helper.rb

def fill_autocomplete(field, options = {})
  fill_in field, with: options[:with]
  page.execute_script %Q{ $('##{field}').trigger('focus') }
  page.execute_script %Q{ $('##{field}').trigger('keydown') }
  selector …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails jquery-autocomplete capybara poltergeist

15
推荐指数
2
解决办法
6436
查看次数

在模糊函数的jquery自动完成中获取所选值

我想拥有自动完成功能,当有模糊事件时,文本框应填充值列表作为第一项.

我希望功能与此链接链接中实现的功能相同

在此输入图像描述

我有下面的代码,它填充在选项卡上并输入键,但不知道如何在模糊事件上实现相同的功能.

$( "#statelist" ).autocomplete({
    autoFocus: true,
    source: states,
    select: function (event, ui) {
        stateid = (ui.item.lable);
        $("#stateid").val(stateid);
    }
});
Run Code Online (Sandbox Code Playgroud)

编辑: - 用户输入文本让我们说"che"并且不按Tab键或输入键,用户将其控件移动到下一个文本框,在这种情况下,我希望在文本框中自动填充第一个列表项.

jquery html5 autocomplete css3

10
推荐指数
2
解决办法
2万
查看次数

JQuery自动完成 - 选择第一项

我正在使用jquery autocomplete,我从rails应用程序上的ruby填充,我正在创建一个自定义autcomplete,如下所示:

  $.widget( "custom.code_complete", $.ui.autocomplete, {
    _renderMenu: function( ul, items ) {
            var self = this,
                currentCategory = "";
        $ul = ul;
            $.each( items, function( index, item ) {
                if ( item.category != currentCategory ) {
                    ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
                    currentCategory = item.category;
                }
                self._renderItem( ul, item );
            });
        }
    });

  $("#r-code").code_complete({
    source: "URL",
    minLength: 2,
    select: function(event, ui) {
      $(".button-row").fadeIn();
      get_details(ui.item.url);
    }
  });
Run Code Online (Sandbox Code Playgroud)

我正在将用户从另一个页面重定向到具有自动完成表单的页面,其中URL中的参数是用于搜索的代码,这里是执行搜索的JS:

function ac_search(code) {
  $("#r-code").val(code);
  $("#r-code").code_complete('search', code);
}
Run Code Online (Sandbox Code Playgroud)

这将完美地执行搜索并显示结果的下拉列表.我试图让脚本然后选择列表中的第一个结果.我试过通过选择器做到这一点:

$(".ui-menu-item:first a").click();
Run Code Online (Sandbox Code Playgroud)

这会在自动完成列表中找到正确的元素,但是当我尝试模拟单击时会出现此错误: …

javascript jquery jquery-ui autocomplete ruby-on-rails-3

5
推荐指数
2
解决办法
2万
查看次数