在提交动态生成的表单时,查找单击了哪个提交按钮
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;
});
表单有两个提交按钮,我需要检测点击了哪个按钮并将此信息传递给 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;
});
根据 Connors 关于使用点击事件而不是提交的建议,我已经成功地获得了这样的提交按钮:
$("#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},
到ajax提交设置
我有多个由模板引擎在运行时动态生成的表单,为了在提交时生成 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;
});
表单有两个提交按钮,我需要检测点击了哪个按钮并将此信息传递给 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;
});
根据 Connors 关于使用点击事件而不是提交的建议,我已经成功地获得了这样的提交按钮:
$("#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},
到ajax提交设置