HTML锚点在点击时发送帖子数据

时间:2010-11-06 03:25:15

标签: jquery html

是否有可能使锚标记的行为类似于.submit(具有某些帖子特征?)为什么我有一个锚标签,因为我不喜欢提交按钮外观并想要一个CSS按钮。

这就是我现在正在做的事情(而且它不起作用)

html文件

<div class="footer"><a href="#" id = "test_btn" class="button"><strong>Sign Up</strong></a></div>

<div class="footer"><a href="#" id = "test2_btn" class="button"><strong>Sign Up</strong></a></div>

.js文件

<script type="text/javascript">

$("#test_btn").live("click",function(){
    var post_data = {'account_type':"Free"}
    return $.post("www.someplacehere.com/user_sign_up/1/", post_data);
}); 

$("#test2_btn").live("click",function(){
    var post_data = {'account_type':"Premium"}
    return $.post("www.someplacehere.com/user_sign_up/1/", post_data);
}); 
</script>

我得到了正确的回复,但它没有将我发送到POST数据页面,只是重定向回到页面顶部(由于锚点)。任何想法如何让它指向正确的位置(html页面)与POST数据预先填写在该html页面上?正如您所注意到的,这不是一个简单的.submit()。 现在可能会使用隐藏字段,然后执行.submit(),但想知道是否有更简单的方法来获取页面,因为POST可以正常完成。

谢谢!

5 个答案:

答案 0 :(得分:23)

每个人停止重新发明按钮。它们已经存在,它们也可以被设计。

button[type=submit] {
    background-color: transparent;
    border: none;
    border-bottom: solid blue 1px;
    color: blue;
    font-weight: bold;
    padding: 0px;
    cursor: pointer;
}

在这里演示:http://jsfiddle.net/MZbLW/


我还应该指出,世界上的每个人都会在表格末尾寻找传统的按钮,从可用性的角度来看,使它看起来完全不同可能不是最好的主意。

答案 1 :(得分:3)

在链接的单击处理程序中,返回false以停止默认操作。

我也会使用click()函数,而不是实时。

答案 2 :(得分:2)

您的点击事件需要返回false或阻止默认。

使用AJAX是 Asynchronous ,所以你不会返回值,你必须在完整的回调中找到值。

http://api.jquery.com/jQuery.post/

答案 3 :(得分:1)

这样的事情可能更接近:

$(a.submitLink).click(function () {
  $.post({data: values});

  $.post({data2: values2});

  return false;
});

这里的关键是返回false会阻止链接的默认行为。如果您需要根据帖子的结果进行额外的处理,您将在回调函数中执行此操作。没有理由你不能在绑定到锚点的函数内发出几个AJAX调用,但是你需要确保链接也不能用作链接。

答案 4 :(得分:0)

快速思考为什么不尝试使用

&lt; button type =“submit”class =“footer”&gt;注册&lt; / button&gt;
而不是 &lt; input type = submit&gt;

这使您可以灵活地按照自己想要的方式设置按钮样式,并在其中包含文本。此外,您不必完成创建自定义按钮并将其发回的所有艰苦工作。

只是想一想。