我正在以编程方式创建表单并尝试提交它。但是,submit()函数什么都不做。
$(".deleteLink").click(function(event) {
event.preventDefault();
var form = $("<form></form>");
form.attr("method", "POST");
form.attr("action", "http://myurl.com");
form.submit(function() {
alert('Handler for .submit() called.');
return false;
});
});
当我在Firebug中设置断点时,我看到click()函数被调用,并且“form”变量被正确填充。一切都适用于submit()方法。提交处理程序中的alert()方法永远不会被调用。
jquery.js中的代码在调用submit()时执行,但我很难通过它来查看它的作用。
我已确认页面上没有其他名为“submit”的对象。
任何人都知道发生了什么事?
澄清:不使用function()参数调用submit()也不会做任何事情。
进一步说明:调用submit(function(){alert()})后跟submit()会调用alert(),但表单仍未提交。
又一个澄清:我希望整个页面都能刷新。我不是想做一个ajax提交。
答案 0 :(得分:1)
您正在附加提交事件处理程序,而不是在表单对象上调用submit,请使用此
form.submit();
你的代码是
$(".deleteLink").click(function(event) {
event.preventDefault();
var form = $("<form></form>");
form.attr("method", "POST");
form.attr("action", "http://myurl.com");
form.submit(function() {
alert('Handler for .submit() called.');
});
form.submit();
});
答案 1 :(得分:1)
在提交之前,您必须将新表单注入文档:
$("body").append(form);
form.submit();
答案 2 :(得分:0)
致电form.submit()
以触发提交表单
答案 3 :(得分:0)
你尝试过这样的事吗?
$(".deleteLink").click(function(event) {
event.preventDefault();
$.post(
'http://myurl.com',
function(){
alert('success');
// window.location.href = 'other page';
}
);
});