如何从html表单的下拉框元素中获取所选项目的文本? (使用 python ) 当我使用鼠标从下拉框中选择一项时,如何将值存储到变量? (即不使用提交按钮)
这是针对我在仅支持 Python 的应用引擎中执行的应用程序。
最佳答案
您的问题表明对 web applications 的一些误解工作。
用户必须在浏览器中键入一个地址才能访问该应用程序。即向服务器发送请求。服务器代码(用 python 编写)收到此请求并有机会发送答复。答案是通常写在 HTML 中的文件。 .本文档的某些部分可以是动态的,即由 python 代码生成。文档的其他部分可以是静态的。然后浏览器在用户窗口上呈现文档。
在那之后,您的 python 代码可以了解浏览器窗口上发生的事情或运行 python 代码的任何部分的唯一方法是让浏览器发送另一个请求。
这可能发生在许多情况下,最常见的是:
- 用户点击指向另一个的链接 url,让浏览器发送另一个 请求这个新的 url。
- 用户点击
提交
按钮,使得 浏览器将表单作为请求提交 到配置的地址 表单的action
属性。 - 实际页面中的一些代码,一般写在ECMAscript中(也称为 javascript),在后台发出请求。
后者是您想要的。您必须在 javascript 中编写一些代码,使浏览器将下拉列表中选择的信息发送到服务器。这样你在服务器上的 python 代码就可以做一些事情。
做到这一点的简单方法是使下拉列表的 onchange
事件执行提交:
<select name='myfield' onchange='this.form.submit()'>
<option .... >
...
</select>
</form>
这样,当用户更改下拉列表中的值时,表单将被提交,就像用户单击提交一样。服务器上的 Python 代码将运行。浏览器将加载答案。
另一种流行的方式是使用 javascript 的 XmlHTTPRequest发送请求的 DOM API。这样你就可以在 python 中接收值并发送一个答案,而浏览器中的 javascript 代码又会接收到这个答案。该代码可以根据答案更改页面的某些部分,而无需更改整个页面。这种技术称为 AJAX .
如果您打算编写大量 javascript 代码,我强烈建议至少使用 javascript 库来减轻处理许多浏览器版本的痛苦。 jQuery是我选择的图书馆。
换句话说,在浏览器中运行的用 javascript 编写的代码对话在服务器中运行的用 python 编写的代码。
关于javascript - 从html表单中的下拉框中获取选定的值而不提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/419908/