2013-03-26 61 views
0

我嘗試使用鏈接提交我的形式,但Ajax並不是功能:提交阿賈克斯形式的鏈接無法正常工作

<form id="store_relation" action="store_relation.php" method="post" name="store_relation" > 
     <input type="hidden" name="store_id" value="<?php echo $row['store_id']; ?>" /> 
     <input type="hidden" name="user_id" value="<?php echo $row['id']; ?>" /> 
</form> 
<li class="online_users"><a id="online_form"><?php echo $row['username']; ?></a></li> 

<script type='text/javascript' language="javascript"> 
$(document).ready(function(){ 
    $('#online_form').click(function(e) { 
     e.preventDefault(); // prevent the link's default behaviour 
     $('#store_relation').ajaxForm({ 
      success: function() { 
      alert('hey'); 
      } 
     }); 
    }); 
}); 
</script> 

回答

2

您需要使用ajaxSubmit()而不是ajaxForm()。按照Form API
給ajaxForm

準備要加入所有 必要的事件監聽器通過AJAX提交的表單。它不提交表格。在您的文檔準備就緒功能中使用ajaxForm 準備您的AJAX 提交表單。 ajaxForm接受零個或一個參數。單個參數 可以是回調函數或選項對象。

ajaxSubmit會

通過AJAX立即提交表單。在最常見的使用案例 中,這是爲了響應用戶單擊 表單上的提交按鈕而調用的。 ajaxSubmit採用零個或一個參數。單個參數 可以是回調函數或選項對象。

$(document).ready(function(){ 
    $('#online_form').click(function(e) { 
     e.preventDefault(); // prevent the link's default behaviour 
     $('#store_relation').ajaxSubmit({ 
      success: function() { 
      alert('hey'); 
      } 
     }); 
    }); 
}); 
0

ajaxForm()不提交表單,也沒有你的鏈接。 De API @http://jquery.malsup.com/form/#api states

通過添加所有必需的事件偵聽器來準備要通過AJAX提交的表單。它不提交表格。

所以你的價值永遠不會被提交,所以你永遠不會進入「成功」的狀態。

您需要自己提交表單,或使用提交按鈕代替鏈接。請注意,並非所有瀏覽器都接受<a>而沒有href