javascript - 动态地将表单 ID 传递到函数中

标签 javascript jquery ajax

我在一个页面上有多个表单,并且我想利用相同的 ajax 函数。它非常适合一种表单,因为我使用 getElementById 获取 id,然后将其传递给我的 ajax 函数。我想做的是动态传递表单 onSubmit 的 id。

表单

<form id="postData" name="business" method="post" action="{{ path('location_graph', {'location_id': location.getId }) }}"
      class="m-form m-form--fit m-form--label-align-right">
    <div class="form-group m-form__group row">
        <label class="col-2 col-form-label required" for="description">Business
            Description</label>
        <div class="col-7">
            <input type="text" class="form-control m-input" id="description"
                   name="extra[description]">
        </div>
    </div>

    ...

    <div class="form-group m-form__group row">
        <button type="submit" class="btn m-btn--square btn-outline-primary">
            Submit
        </button>
    </div>
</form>

脚本

document.getElementById('postData').addEventListener('submit', postData);

function postData(event) {
    event.preventDefault();

    $.ajax({
        type: $(this).attr("method"),
        url: $(this).attr("action"),
        data: $(this).serialize(),
        success: function (data) {
            console.log(data);
            $('#success__para').html("You data was saved");
        }
    });
}

最佳答案

您可以将 submit 事件处理程序附加到每个表单,并传递 eventthis.id (id 表单元素)作为参数。

Javascript:

function postData(event, id) {
    event.preventDefault();
    var elem = $('#'+id);
    $.ajax({
        type: elem.attr("method"),
        url: elem.attr("action"),
        data: elem.serialize(),
        success: function (data) {
            console.log(data);
            $('#success__para').html("You data was saved");
        }
    });
}

HTML:

<form id="someid" onsubmit="postData(event, this.id)">

关于javascript - 动态地将表单 ID 传递到函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51867037/

相关文章:

java - 从 AJAX 调用异步 Servlet

javascript - onchange 选择(动态)下拉菜单

javascript - 试图遍历一个节点得到休息返回

jquery - 使用 jQuery 定位具有特定类的图像?

jquery - 新定义函数中参数的命名空间

javascript - 尝试 AJAXify 这个 Rails 4 方法调用并收到 500 错误

javascript - 在 XMLHTTPRequest 刷新之间保存 div 可见性状态

javascript - DOMContentLoaded 在导航后未触发,但在使用 javascript_pack_tag 时在页面重新加载时触发

javascript - jQuery after() 未捕获语法错误 : Unexpected token ILLEGAL

javascript - 使用 JSON 的 jquery 数据表