我对这个问题感到非常内疚。但是,我尝试了一切,没有任何效果......迫使我在这里问。如果建议,我会删除这个问题。
在网站的Chrome控制台上:https://search.cisco.com/search?tab=Cisco&locale=enUS, 我执行了以下操作:
//works fine
document.getElementById("searchform").submit() ;
"Hello World!"
第1行正常工作,并使用"Hello World!"
填充输入。第2行提交表单和页面重新加载但不知何故optionalFacetFilters: ["featuredIn.category:category1"]
在页面加载时没有结转。如果有人能解释为什么会这样,那就太棒了?
答案 0 :(得分:0)
您正在为输入字段填充值,然后提交表单。
表单操作等于点,因此它实现了页面的编码。
您设置的输入字段值没有任何name
atrtibute,因此它在url地址的查询字段中丢失,看起来没有提交任何内容。
当您从键盘输入搜索词时,其他脚本执行(可能是ajax)请求,并在没有页面重新加载的情况下显示结果。
<强> EDITED 强> 当您在键盘上按Enter键时,脚本会使用?query = searc-term参数重新加载页面。并且查询不是您填充值
的文本输入的名称答案 1 :(得分:0)
第一步将Hello World!
放入搜索字段。第二步提交了搜索表单。它应该带回Hello World!
的搜索结果,但它没有。
发生了什么事?
我看了一下表格的代码,这就是我所看到的:
它具有普通的html表单属性,例如id
,class
和action
。
它还有一个额外的属性:ng-submit
。
快速谷歌搜索ng-submit
让我发现了这个:
ngSubmit
模块ng中的
- 指令
启用将角度表达式绑定到onsubmit事件。
此外,它会阻止默认操作(表单意味着将请求发送到服务器并重新加载当前页面),但前提是表单不包含操作,数据操作或x - 作用属性。
由此,我们可以确定两件事:
ng-submit
收集查询并返回搜索结果。ng-submit
你做的一切都是正确的;遗憾的是,搜索功能并不是通过正常提交表单来设计的;它需要是Angular的ng-submit
。