在查询字符串中传递值以自动填充表单上的字段

Posted

技术标签:

【中文标题】在查询字符串中传递值以自动填充表单上的字段【英文标题】:Passing values in a querystring to automatically populate fields on a form 【发布时间】:2012-08-16 04:25:39 【问题描述】:

我想将一些字段(例如姓名信息)传递到表单中。不过我可能不是这个表单的开发者,所以我不确定页面加载或查询字符串是如何处理的。

通过查看一些网络表单,您可以通过其name 属性调用文本字段,并自动设置这些字段。例如,SO 就是这样做的。如果转到https://***.com/questions/ask?title=THISISMYTITLE,第一个字段(标题字段)将填写 THISISMYTITLE。

另一个很好的例子是 redmine。在这种情况下,我可以通过查询字符串将任何一个字段(甚至是自定义字段)设置为值。

最后,像 1Password 这样的工具可以在 Mac 和 Windows 上执行类似的操作 - 它将密码存储在本地数据库中。不过,您可以让它启动您的浏览器,然后放入内容中。

由于某种原因,当我尝试将这样的查询字符串传递给我开发的一些 asp.net 网络应用程序时,页面加载方法似乎通过了它们。它知道它们在那里(我可以在 Request.QueryString 对象中看到它们),但它不会填写这些字段。

是否有可靠的方法来执行此操作,而无需要求开发人员更新代码?为什么有些网页允许这样做,而有些则不允许?它似乎也与浏览器无关 - IE 和 Chrome 的行为方式相同。

注意 - 这是给我的,通过使用查询字符串或类似的东西将字段传递到任意网页。这不适用于访问网页本身的字段。

【问题讨论】:

【参考方案1】:

这不会自动发生,您必须在表单中显式设置值以读取QueryString 中的参数。如果 SO 和其他网站似乎这样做是因为他们的代码正在 URL 中查找这些参数并在表单中填充适当的元素。

类似:

txtTitle.Text = Request.QueryString["Title"];

等等……

【讨论】:

因此,与任何类型的通用 html“功能”相比,Web 应用程序(无论是在 RoR 还是 ASP.net 或 php 中)必须实现这一点?是的,我在 Web 应用程序端使用了数百万次查询字符串 (Request.QueryString["key"]) @jmlumpkin 正确。没有 HTML 功能可以根据 URL 中的参数自动填充字段。 我希望默认情况下,在您的示例中,您可以传递 ?txtTitle=thetitle 的查询字符串,它会自动为您执行此操作(或者在我的情况下,设置字段而无需开发人员处理它) @jmlumpkin 我明白你的意思,但我不知道有任何HTML feature,正如你所说,它会自动执行此操作。

以上是关于在查询字符串中传递值以自动填充表单上的字段的主要内容,如果未能解决你的问题,请参考以下文章

通过连接来自其他文本字段的字符串值自动填充访问表单中的字段

如何防止 HTML 表单上的浏览器自动填充功能?

Chrome for Android显示自动填充即使自动填充:关闭

将日期自动填充到表单字段中

如果表单有超过 200 个输入字段,则自动填充/自动完成不起作用

如何防止 chrome 自动填充表单中的每个字段?