【问题标题】:Get value of div and other elements on button click在按钮单击时获取 div 和其他元素的值
【发布时间】:2015-06-13 23:22:02
【问题描述】:

我有一个由 div 和 ul 元素组成的 HTML 表单。我想通过单击按钮获取所有数据。我知道在涉及输入类型元素时如何获取,但如何仅处理 div 和列表元素?

html

  <div class="boxInner">

    <form id="my_form" method="POST">
    <div class="inner-box-header">
      %s
    </div>
    <div class="inner-sub-header">
      %s
    </div>

    <div class="inner-box-footer">
      <ul>
        <li>
            <img src="images/assets_icon_location.png" style="height:13px;width:10px;float:left;margin-right:3px;" alt="">
            <span class="image-side-text">%s</span></li>
            <li id="ip-location">&#9899<span>%s - %s</span></li>
      </ul>
    </div>

    <div class="titleBox">
      <input type="submit" value="Click" name="ws_butt" />
    </div>
    </form>
    </div>

python 脚本

request_body_size = int(environ.get('CONTENT_LENGTH', 0))
request_body = environ['wsgi.input'].read(request_body_size)
d = parse_qs(request_body)

如何获取请求正文中的所有元素并在解析时检索?有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: python html forms http-post


    【解决方案1】:

    你不能。

    您的 POST 请求正文将仅包含来自输​​入元素的值,不包含其他信息。

    如果你必须这样做,你有两个基本的选择:

    1. 创建实际的表单域(最佳选择);然后相应地设置它们的样式。
    2. 创建隐藏的表单字段,然后在提交表单之前使用 javascript 将相关 div 的值添加到表单字段的值中。

    当您在示例中使用 POST 时,请确保您有停止 CSRF 的机制。最简单的方法是使用 Python 框架。

    【讨论】:

    • 当我尝试这样做并获取发布请求中的值时,我能够获取所有值。另外,有没有什么办法可以在没有框架的情况下阻止 CSRF?
    【解决方案2】:

    表单数据仅与 HTML 输入元素一起发送。

    为每个 Div、Li 等使用隐藏字段。然后使用 windowload 事件将它们的值捕获到隐藏字段中。

    <head>
    $(window).load(function(){
    var a = $('#div1').text();
    $('#div1Value').val(a);
    });
    </head>
    
    <body>
    <form method='post'>
    <input type='hidden' id='div1Value'>
    <div id='div1'>Some text</div>
    <input type='submit' value='Submit'>
    </form>
    </body>
    

    然后使用这个 JQuery 代码:

    【讨论】:

      【解决方案3】:

      我想将输入 type="hidden" 与我需要的每个值一起输入,这样就可以完成这项工作。

       <form id="my_form" method="POST">
       <input type="hidden" name="name" value="%s">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-02
        • 1970-01-01
        • 2022-07-07
        • 1970-01-01
        • 1970-01-01
        • 2015-11-04
        • 2021-03-29
        相关资源
        最近更新 更多