[英]on submit of dynamically generated form, find which submit button was clicked
我有多种形式,这些形式是由模板引擎在运行时动态生成的,为了在提交时生成ajax请求,我使用了“ on”方法来委托事件。
$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){
var form = this;
$(form).ajaxSubmit({
url:'URL',
type:'post',
dataType: 'json',
success: function(data) {
DO SOMETHING
}
});
return false;
});
该表单有2个提交按钮,我需要检测单击了哪个按钮,并将此信息传递给ajax请求。 但是我很难知道单击了表单中的哪些提交输入,因为它们也是动态生成的。 有想法吗?
希望对您有帮助:
$("#friendRequestsList").on("submit", "[id^=friendReqResponse-form]", function(){
var submit1 = $(this).attr('value');
var formData = new FormData();
formData.append('submit1', submit1);
$.ajax({
url:'URL',
type:'post',
data:formData,
dataType: 'json',
success: function(data) {
DO SOMETHING
}
});
return false;
});
在康纳斯建议使用click事件而不是Submit的建议之后,我设法获得了Submit按钮,如下所示:
$("#friendRequestsList").on("click", "[id^=submit1], [id^=submit2]", function(e) {
var input = this;
var form = $(input).parent();
$(form).ajaxSubmit({
url:'URL',
type:'post',
dataType: 'json',
success: function(data) {
DO SOMETHING
}
});
e.preventDefault()
});
当然,如果我的表单具有输入字段,这将无法很好地工作,因为它不会在通过Enter键提交表单时被触发。 另外,您仍然需要将输入标识信息附加到ajax请求中。
我通过添加
data: {submit:input.value},
到ajaxSubmit设置
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.