如何检测使用 webapp2 单击了哪个图像按钮(输入类型=图像)?

How do I detect which image button (input type=image) was clicked using webapp2?

如何在 Google App Engine (GAE) 下的 Python 脚本 运行 中确定点击了网页上的哪个 input type=image(图像按钮) (使用 webapp2 处理程序)?

我有一个带有两个(目前会更多)图像按钮的 Web 表单,我需要知道点击了哪一个。我看过一个关于使用按钮的 id 属性的答案。但它没有使用 Python / webapp2 所以我不确定如何应用它,而且我可能没有正确理解它。

我已经尝试了很多东西 none,其中一些是有效的,这是我的起点

imgid = handler.request.id

在 POST 处理程序中,但会给出属性错误。

在图像按钮和 webapp2 请求上搜索各种信息资源,除了图像中的坐标外,我几乎看不到从图像按钮返回服务器的信息单击指针。我确实了解到,与其他按钮不同,图像按钮不使用 value 属性;在不同的环境(ASP.NET,而不是 Python/webapp2)中有一个 post 说要使用 id 属性,但在 Python 中不起作用。

(使用 value 属性,没有使用与其他输入按钮类型相同的方法似乎很奇怪。)

这是 POST 处理程序试图获取 ID 的代码:

class image_button_set(webapp2.RequestHandler):
    def sails_spin_set(handler, SLurl):
        imgid = handler.request.id

    

这是表单的HTML内容

<form action="/image_button_set" method="post">
    <input name="parm1" id="Button1" type="image" src="/images/spin-glasses3.jpg" height="256" width="256">
    <input name="parm1" id="Button2" type="image" src="/images/spin-spiral3.jpg" height="256" width="256">
    <input name = "parm1" value="Cancel" style="font-size: 16pt; color: DarkRed; font-weight: bold;" type="submit">
</form>

下面是代码如何查找其他类型的按钮,例如收音机(省略无关的日志记录代码等):

class image_button_set(webapp2.RequestHandler):
    def sails_spin_set(handler, SLurl):
       image = self.request.get("image")

HTML 中的按钮定义为

<input name="image" value="image1" type="radio">Image1
<input name="image" value="image2" type="radio">Image2

我使用 imagebutton 上的 formaction 属性解决了这个问题。

<form action="/sails_spin_set?img=dummy" method="post">
  <input type="image" name="spin" formaction="/imgbtn_set?img=spin1" src="/images/spin-glasses3.jpg" style="font-size: 12pt; color: Navy; font-weight: bold;" height="256" width="256">
  <input type="image" name="spin" formaction="/imgbtn_set?img=spin2" src="/images/spin-spiral3.jpg" style="font-size: 12pt; color: Navy; font-weight: bold;" height="256" width="256"><br>
  <br>
  <input name="act" value="Cancel" style="font-size: 16pt; color: DarkRed; font-weight: bold;" type="submit">
</form>

然后按常规方式处理URL, 主脚本中的路由:

app = webapp2.WSGIApplication(
                              [('/', MainPage),
                               ('/imgbtn_show', image_button_show),
                               ('/imgbtn_set', image_button_set)])
                                  

和 POST 处理程序:

class image_button_set(webapp2.RequestHandler):
    def post(self):
        imageid = self.request.get("img")  # from the selected imagebutton
        handler.response.write("image selected: "+imageid)