我无法提交动态创建的表单.我尝试了很多方法,但表单没有提交.以下是我尝试过的几种方法.
在这段代码tosubmit中实际上是使用创建的json字符串JSON.stringify.当我使用调试时,我也没有收到任何错误Opera Dragonfly.我可以看到正确添加到DOM的表单.
方法1
var frmstr = '<form id="tbl_tmpfrm" method="post" action="/test.php">';
frmstr +='<input type="hidden" name="submit" value="true"/><input type="hidden" name="data" value=""/></form>';
$('body').append(frmstr);
$('#tbl_tmpfrm').find('input[name="data"]').val(tosubmit);
$('#tbl_tmpfrm').submit();
Run Code Online (Sandbox Code Playgroud)
方法2
var frmstr = '<form id="tbl_tmpfrm" method="post" action="/test.php">';
frmstr +='<input type="hidden" name="submit" value="true"/><input type="hidden" name="data" value="'+tosubmit+'"/></form>';
$('body').append(frmstr).submit();
Run Code Online (Sandbox Code Playgroud)
tosubmit当我使用时,我能够在服务器端成功提交和验证ajax.但我想要一个正常的提交.我究竟做错了什么?
请帮忙.谢谢.
对于动态添加的元素,请使用此表单
$(document).on('submit','#tbl_tmpfrm',function(){})
Run Code Online (Sandbox Code Playgroud)
编辑:这不是完全需要的.尝试将表单添加为对象而不是字符串
var frmstr = $('<form id="tbl_tmpfrm" method="post" action="/test.php"></form>');
$(document).append(frmstr);
frmstr.append('<input type="hidden" name="submit" value="true"/><input type="hidden" name="data" value="'+tosubmit+'"/>');
frmstr.submit();
Run Code Online (Sandbox Code Playgroud)
此外,正如roland所建议的那样,不要使用提交隐藏字段的名称
不要将名称submit用于隐藏字段.
<input type="hidden" name="submit" value="true"/>
Run Code Online (Sandbox Code Playgroud)
如果您有一个具有此名称的input元素,则不能在表单上使用submit().