我在一个页面上有多个表单,并且我想利用相同的 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
事件处理程序附加到每个表单,并传递 event
和 this.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/