2010-11-06 26 views
7

是否有可能让定位标记的行为像.submit(具有某些发布特征?)原因为什么我有一个定位标记,因为我不喜欢提交按钮的外观,并希望CSS按钮。HTML定位点击发送发布数据

下面是我在做什么,现在(和它不工作)

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可以正确完成。

谢谢!

回答

23

大家都停止重新发明按钮。它们已经存在,并且它们也可以被设计。

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

这里demo'd:http://jsfiddle.net/MZbLW/


我还要指出的是,世界上每个人将要寻找的形式结束了传统的按钮,使它看起来从可用性的角度来看,完全不同可能不是最好的想法。

+0

这不是重新发明按钮,而是关于使用AJAX通过表单提交数据。无论哪种方式,你必须取消默认操作。 – zzzzBov 2010-11-06 03:41:46

+0

绝对的,CSS – MikeAinOz 2010-11-06 03:42:53

+1

@zzzz AJAX的奇观是无关紧要的。最好将按钮设置为链接样式,而不是通过链接重新实现按钮功能。如果您的自定义样式中断,则底层功能仍然有效。 – 2010-11-06 03:44:23

3

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

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

1

像这样的东西可能更接近:

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

    $.post({data2: values2}); 

    return false; 
}); 

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

0

一个快的想法你为什么不尝试使用

<按钮类型= “提交” 类= “页脚” >注册< /按钮>
而不是
<输入类型=提交>

这给你灵活的样式你的按钮,无论你想要的方式,并在其中有文字。除此之外,您不必为创建自定义按钮并将其发回而苦苦做所有工作。

只是想一想。