-1

我无法提交动态创建的表单。我尝试了很多方法,但表单没有提交。以下是我尝试过的几种方法。

在这段代码tosubmit中实际上是一个使用JSON.stringify. 当我使用Opera Dragonfly. 我可以看到正确添加到 DOM 的表单。

方法一

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();

方法二

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();

tosubmit当我使用ajax. 但我想要一个正常的提交。我究竟做错了什么?

请帮忙。谢谢。

4

3 回答 3

15

对于动态添加的元素,请使用此表单

$(document).on('submit','#tbl_tmpfrm',function(){})

编辑:这不是完全需要的。尝试将表单添加为对象而不是字符串

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();

另外,正如 roland 所建议的,不要将名称 submit 用于隐藏字段

于 2013-08-02T09:59:25.387 回答
9

不要使用submit隐藏字段的名称。

<input type="hidden" name="submit" value="true"/>

如果您有一个具有此名称的输入元素,则不能在表单上使用 submit()。

于 2013-08-02T10:35:14.420 回答
3

你需要使用'on';在这里试试这个代码:

$("#tbl_tmpfrm").on("submit", function() { 

});
于 2013-08-02T10:00:00.760 回答