我正在尝试以迂回的方式提交表单,因为我需要它在提交之前附加新的输入.由于在实际的$(form).submit()函数中附加它将不会收集他们的帖子,我添加了一个html按钮来调用submitCheck(),然后提交实际的功能.
function init() {
$("#submit").click(submitCheck);
//and lots of other stuff
}
function submitCheck() {
//go through fabric canvases,save xml to input.
for (var i=1; i<probNum; i++) {
var csvg = gcanvas[i].toSVG();
$('#output').append("<input type='hidden' name='svg"+probNum+"' value='"+csvg+"'></input>");
}
//make sure a topic was selected. If not cancel submission and don't do anything.
if ($("#topic").val() == '-1')
{
$('#error').html("You must select a valid topic");
} else {
//submit the form
alert('should submit Now');
$("form:first").submit();
}
}
但是…它失败,抛出类型错误:
TypeError: f[s] is not a function
我没有发现关于这个特定错误的文档.有任何想法吗?
解决方法
您的表单中有一些name =“submit”的输入,它覆盖了在jQuery内部调用的本机form.submit(以编程方式提交表单)方法.您需要将其改为其他名称.
请参阅documentation中的附加注释段落.
您也可以使用DOMLint查看其他可能的冲突问题.