通过jquery将搜索文本插入SharePoint 2013"查找项目"文本框和触发器搜索

时间:2015-05-05 21:28:42

标签: sharepoint-2013

我正在尝试使用SharePoint 2013中的“查找项目”搜索框以编程方式触发搜索。

计划是使用jquery在搜索框(输入控件)中插入文本,然后触发搜索按钮单击。

文本插入正常,但按钮单击不执行任何操作。看来文本没有被完全推送到输入,因为当我点击搜索框时文本消失了。任何帮助都会很棒。

定位标准共享点搜索框时,相同的代码有效。

var input = $("#inplaceSearchDiv_WPQ1_lsinput");
$(input[0]).val("some text");
var btn = $("#inplaceSearchDiv_WPQ1_lsimg")
btn.click();

2 个答案:

答案 0 :(得分:0)

当您在搜索文本框中插入文本并按搜索按钮时,SharePoint会将您重定向到相应的结果页面.aspx并带有查询字符串参数?k = something。

您可以在搜索文本框中看到“某事”文本。 如果再次按下搜索按钮但现在进入搜索结果页面,SharePoint会保留查询字符串?k = something并添加哈希参数#k = something。

我不知道为什么SharePoint不会在第一时间使用hash参数而不是查询字符串,但它可以以任何方式工作。

因此,使用JavaScript,而不是插入文本,然后按下按钮,只需将用户重定向到“http://sharepointsite/resultpage.aspx#k=something” 进入结果页面后,您可以继续通过JavaScript更改查询:

toString()

答案 1 :(得分:0)

Inplace SearchBox是动态控件,由 sp.ui.listsearchboxbootstrap.js

创建

要设置值并单击应设置值的按钮

var input = $("#inplaceSearchDiv_WPQ1_lsinput");
$(input[0]).val("some text");

然后你必须触发输入'初始化内部控制变量的事件,如$ z_3(输入的前一个值),$ 9_3(isDirty) - 参见 sp.ui.listsearchbox.dubug.js ,如下所示:

var ev = document.createEvent("Event");
ev.initEvent('input', true, true)
input.dispatchEvent(ev);

执行该操作后,您可以触发点击事件

var btn = $("#inplaceSearchDiv_WPQ1_lsimg")
btn.click();