我正在尝试使用SharePoint 2013中的“查找项目”搜索框以编程方式触发搜索。
计划是使用jquery在搜索框(输入控件)中插入文本,然后触发搜索按钮单击。
文本插入正常,但按钮单击不执行任何操作。看来文本没有被完全推送到输入,因为当我点击搜索框时文本消失了。任何帮助都会很棒。
定位标准共享点搜索框时,相同的代码有效。
var input = $("#inplaceSearchDiv_WPQ1_lsinput");
$(input[0]).val("some text");
var btn = $("#inplaceSearchDiv_WPQ1_lsimg")
btn.click();
答案 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();