我有以下代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<form method="post" id="theform" action="http://example.com" target="_blank">
<input name="email" placeholder="email" type="text">
<input id="submit" type="submit" value="submit">
</form>
<script type="text/javascript">
jQuery(function() {
jQuery('#submit').on('click', function(e) {
e.preventDefault();
jQuery('#theform').attr('disabled', 'disabled');
//Code here
jQuery('#theform').removeAttr('disabled').submit();
}
});
});
</script>
</body>
</html>
表单未提交。知道是什么了吗?
我知道我可以进行ajax
调用以手动提交表单到操作URL,然后使用JavaScript
重定向到我想在新标签中发送用户的位置;但是,我不想这样做,因为popup blockers
会占用JavaScript
重定向。因此,我在target="_blank"
上有submit
形式,它将用户送到我想要发送的位置...如果只有代码可用。
答案 0 :(得分:1)
从onclick事件处理程序中删除行e.preventDefault();
。
更新: 很抱歉,我没注意到您之前在代码中明确提交了表单。即使上述变化会解决它,实际问题还是其他问题。不要对函数进行任何更改只需将提交按钮的id重命名为其他内容并更新绑定,代码应该可以正常工作。 工作小提琴:http://jsfiddle.net/epednoat/
<body>
<form method="post" id="theform" action="http://example.com" target="_blank">
<input name="email" placeholder="email" type="text">
<input id="smt" type="submit" value="submit">
</form>
<script type="text/javascript">
jQuery(function() {
jQuery('#smt').on('click', function(e) {
e.preventDefault();
jQuery('#theform').attr('disabled', 'disabled');
//Code here
jQuery('#theform').removeAttr('disabled').submit();
}
});
});
</script>
</body>
</html>
答案 1 :(得分:0)
您可以使用以下代码jQuery submit表单。
$( "#theform" ).submit(function( event ) {
alert( "Handler for .submit() called." );
event.preventDefault();
});
使用JavaScript
function submitform()
{
document.theform.submit();
}