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

标签 javascript python html google-app-engine drop-down-menu

如何从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/

相关文章:

html - 如何在我的网站上将导航栏居中?

javascript - 全日历.js : Event callbacks not firing for added events that get resized/clicked/dropped?

javascript - 需要帮助附加 Javascript onclick

python - 在列表项的循环中保持前一项可访问的优雅方法

python - 如何在没有实例的情况下调用同一类的另一个方法?

JavaScript - 如何逐字符显示文本

html - 如何使用 Bootstrap 3 为嵌套的内联表单元素提供宽度?

javascript - Fabric JS行高和单个字符的字符间距

javascript - 如何将元素的高度设置为与其宽度相同并在窗口调整大小时保持大小比?

python - 如何将有效值传入 cleartext_keyset_json 以创建 Tink key