从html表单的下拉框中获取选定的值而不提交

2023-12-24

如何从html表单的下拉框元素中获取所选项目的文本? (使用Python) 当我使用鼠标从下拉框中选择一项时,如何将值存储到变量中? (即不使用提交按钮)

这是针对我在仅支持 Python 的应用程序引擎中执行的应用程序。


你的问题表明对如何进行一些误解网络应用程序 http://en.wikipedia.org/wiki/Web_application work.

用户必须在浏览器中输入地址才能访问该应用程序。这会向服务器发送请求。服务器代码(用 python 编写)接收此请求并有机会发送答案。答案是通常写成的文档HTML http://www.w3.org/html/。本文档的某些部分可以是动态的,即由 python 代码生成。文档的其他部分可以是静态的。然后浏览器在用户窗口上呈现该文档。

之后,Python 代码了解浏览器窗口上发生的情况或运行 Python 代码的任何部分的唯一方法是让浏览器发送另一个请求。

这种情况在很多情况下都可能发生,最常见的是:

  • 用户点击另一个链接 url,让浏览器发送另一个 请求这个新的 url。
  • 用户点击submit按钮, 制作 浏览器将表单作为请求提交 到配置的地址 形式action属性。
  • 实际页面中的一些代码,通常写成ECMA脚本 http://www.ecmascript.org/(也称为javascript),在后台发出请求。

后者就是你想要的。您必须写在javascript一些代码使浏览器将下拉列表中选择的信息发送到服务器。这样你在服务器上的 python 代码就可以做一些事情。

做到这一点的简单方法是使onchange下拉事件进行提交:

<select name='myfield' onchange='this.form.submit()'>
<option .... >
...
</select>
</form>

这样,当用户更改下拉列表中的值时,表单将被提交,就像用户单击“提交”一样。服务器上的 Python 代码将运行。浏览器将加载答案。

另一种流行的方法是使用 javascriptXmlHTTP请求 http://en.wikipedia.org/wiki/XMLHttpRequest用于发送请求的 DOM API。这样你就可以在 python 中接收值并发送答案,而浏览器中的 javascript 代码又会接收到答案。该代码可以根据答案更改页面的部分内容,而无需更改整个页面。这种技术称为AJAX http://en.wikipedia.org/wiki/Ajax_(programming).

如果您计划编写大量 javascript 代码,我强烈建议使用 javascript 库,至少可以减轻处理许多浏览器版本的痛苦。jQuery http://jquery.com/是我选择的图书馆。

换句话说,用 javascript 编写的代码在浏览器中运行talks到服务器中运行的用Python编写的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从html表单的下拉框中获取选定的值而不提交 的相关文章