【问题标题】:Read data from dynamically generated forms with Javascript使用 Javascript 从动态生成的表单中读取数据
【发布时间】:2021-09-30 21:10:19
【问题描述】:

所以我的 HTML 页面有多个生成的表单:

{% for row in data %}
    <form action="/aggiorna_pratica" method='POST' id="inserisci_app_{{ row[0][1] }}">
       <input name="id_pratica_{{ row[0][1] }}" type='hidden 'id="id_pratica_{{ row[0][1] }}" value="{{ row[0][1] }}"></input> 

       <button type="submit" class="btn btn-success aggiorna_app">
          <i class="fa fa-check"></i>
       </button>
    </form>
{% endfor %}

row[0][1] 包含行的 id。

我试图从它们中的每一个发送 ajax 请求,但我从每一行中获得了第一行的相同 ID。

这是Javascript

$(document).ready(function() { $(".aggiorna_app").click(function(event) { 
//prevent submit
event.preventDefault(); //Thx @alex

//do things on submit
$.ajax({
    data : {
        tipo_richiesta : "inserisci_intervento",
        id : $('#id_pratica').val(),
        data_int : $('#data_int').val(),
        ora_int : $('#ora_int').val()
    },
    type: "POST",
    url: "/aggiorna_pratica",
    beforeSend: function(){
        //Before send data
    },
    success: function(data){
        console.log(data);
    }
});

}); });

我知道我是新手,但我真的需要一些帮助

【问题讨论】:

    标签: javascript html jquery python-requests


    【解决方案1】:

    这是一个测试点击事件的工作示例。点击事件在每个表单内的.aggoriorna_app 按钮上,但是传递给ajax 调用的id 看起来每次都在抓取.val(),例如$('#id_pratica').val()。您将在我的示例中看到,当单击按钮时,找到最近的输入值并将 ajax id 设置为该值。我想这就是你所需要的。

    $(document).ready(function() { 
            $(".aggiorna_app").click(function(event) { 
                //prevent submit
                event.preventDefault(); //Thx @alex
        
                var id = $(this).parent().find('input').val();
                alert(id);
            });
        });
    form {
      margin-bottom: 3rem;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="container">
        <form action="/aggiorna_pratica" method='POST' id="inserisci_app_{{ row[0][1] }}">
            <input name="id_pratica_{{ row[0][1] }}" type='hidden 'id="id_pratica_1" value="input_1"></input> 
            <button type="submit" class="btn btn-success aggiorna_app">
                <i class="fa fa-check"></i>CLICK ME
            </button>
        </form>
        <form action="/aggiorna_pratica" method='POST' id="inserisci_app_{{ row[0][1] }}">
            <input name="id_pratica_{{ row[0][1] }}" type='hidden 'id="id_pratica_2" value="input_2"></input> 
            <button type="submit" class="btn btn-success aggiorna_app">
                <i class="fa fa-check"></i>CLICK ME
            </button>
        </form>
        <form action="/aggiorna_pratica" method='POST' id="inserisci_app_{{ row[0][1] }}">
            <input name="id_pratica_{{ row[0][1] }}" type='hidden 'id="id_pratica_3" value="input_3"></input> 
            <button type="submit" class="btn btn-success aggiorna_app">
                <i class="fa fa-check"></i>CLICK ME
            </button>
        </form>
    </div>

    【讨论】:

    • id 只是每个表单的唯一编号,但每次函数只返回列表开头的那个(即使我单击另一个表单的提交按钮,也只是第一个表单的 id表单),.aggiorna_app 只是一个发送表单数据的函数(所有其他参数都在表单中,我只是在这里粘贴它,但如果你需要它,我会的)。
    • 是的,这只是一个错字,在代码中没有这样的错误。
    • 我更新了我的答案。我假设 ajax id 每次都需要是唯一的,但是无论单击哪个按钮,您的 id 看起来都设置为相同的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2012-11-08
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多