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>
4

2 回答 2

2

您需要使用ajaxSubmit()而不是ajaxForm(). 根据表单 API
ajaxForm

通过添加所有必要的事件侦听器来准备要通过 AJAX 提交的表单。它不提交表单。在文档的就绪函数中使用 ajaxForm 来准备表单以进行 AJAX 提交。ajaxForm 接受零个或一个参数。单个参数可以是回调函数或选项对象。

ajax提交

立即通过 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');
            } 
        }); 
    });
 }); 
于 2013-03-26T03:58:39.883 回答
0

ajaxForm()不提交表格,也没有您的链接。德 API @ http://jquery.malsup.com/form/#api状态

通过添加所有必要的事件侦听器来准备要通过 AJAX 提交的表单。它不提交表单。

所以你的值永远不会被提交,所以你永远不会进入“成功”状态。

您需要自己提交表单,或者使用提交按钮而不是链接。请注意,并非所有浏览器都接受<a>没有href

于 2013-03-26T02:49:38.027 回答