繁体   English   中英

提交表单时输入值未结转

[英]Input value isn't getting carried forward when form is submitted

我对问这个问题感到内。 但是,我尝试了一切,但无济于事...迫使我在这里提问。 如果有建议,我将删除此问题。

在网站的Chrome控制台上: https : //search.cisco.com/search?tab=Cisco&locale=enUS ,我执行了以下操作:

  1. document.getElementById("searchT").value = "Hello World!" //works fine
  2. document.getElementById("searchform").submit() ;

第1行工作正常,并用"Hello World!"填充输入"Hello World!" 第2行提交表单并重新加载页面,但不知何故, "Hello World!" 页面加载时不会继续前进。 如果有人可以解释为什么会发生,那将是很好的选择?

您正在将值填充到输入字段,然后提交表单。 表单动作等于点,因此它可以处理页面。 您设置的值的输入字段没有任何name atrtibute,因此它在url地址的查询字段中丢失,并且看起来没有任何提交。

当您从键盘输入搜索词时,其他脚本会执行(可能是ajax)请求,并向您显示结果而无需重新加载页面。

编辑当您按键盘上的Enter键时,脚本将使用?query = searc-term参数重新加载页面。 查询不是您正在填充值的文本输入的名称

第一步放好Hello World! 在搜索字段中。 第二步提交了搜索表单。 它应该带回Hello World!的搜索结果Hello World! ,但是没有。

发生了什么?

我看了看表单的代码 ,这就是我看到的:

思科表单代码

它具有普通的html表单属性,例如idclassaction

它还具有一个额外的属性: ng-submit

谷歌对ng-submit快速搜索使我发现了这一点:

ng提交

  • ng模块中的指令

使绑定角度表达式绑定到onsubmit事件。

此外,它仅在表单不包含action,data-action或x-action属性时才阻止默认操作(对于表单,这意味着将请求发送到服务器并重新加载当前页面)

来源: https : //docs.angularjs.org/api/ng/directive/ngSubmit

由此,我们可以确定两件事:

  1. 思科使用Angular的ng-submit来收集查询并返回搜索结果。
  2. 没有Angular的ng-submit ,搜索功能无法正常工作。

你做的一切正确; 不幸的是,搜索功能并非通过正常提交表单而起作用。 它必须是Angular的ng-submit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM