似乎#frmToDo
仍然会发布帖子
<form id="frmToDo" name="frmToDo">
...
<a id="btnSubmit" href="javascript:document.frmToDo.submit();">Add</a>
google.load("jquery", 1);
google.load("jqueryui", 1);
google.setOnLoadCallback(function() {
...
$("#frmToDo").submit(function() {
return false;
...
为什么会发生这种情况?可能是因为href="javascript:document.frmToDo.submit()
。我如何提交带有该链接的表单(我没有使用<input type="submit" />
,因为样式问题,似乎按钮更难设计样式,尤其是在不同的浏览器中)AJAX方式?
答案 0 :(得分:3)
你说你没有使用<input type="submit" />
因为造型所以为什么不使用,
<a id="btnSubmit" href="#" onclick="return false">Add</a>
google.setOnLoadCallback(function() {
//...OTHER LOGIC
$('#btnSubmit').click(function(){
var form = $(this).parent().find('form');
var formdata = $(form).serialize();
$.ajax({
url : 'ajax/receiver.php',
data : formdata,
success : function(responce)
{
alert(responce); // do what you want here
}
})
});
//...OTHER LOGIC
});
答案 1 :(得分:1)
$('#btnSubmit').click(function(){
$("#frmToDo").submit();
})
将其用作<a>
答案 2 :(得分:0)
如果你想用ajax方式做,那就不需要提交了。实际上,“形式”元素是不必要的。只需使用ajax调用。
答案 3 :(得分:0)
如上所述,您可以直接通过click方法附加到事件。但是,如果您想使用您的方法,您也应该能够这样做。
我认为,因为您通过DOM API附加到事件而不是使用内联函数,所以您需要显式取消事件而不是仅返回false,至少对于表单提交。我相信这对你有用。
$('#frmToDo').submit(function(e){
e.preventDefault();
});