我正在尝试以迂回的方式提交表单,因为我需要它在提交之前附加新的输入.由于在实际的$(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查看其他可能的冲突问题.