2010-11-06 28 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

一個快的想法你爲什麼不嘗試使用

<按鈕類型= 「提交」 類= 「頁腳」 >註冊< /按鈕>
而不是
<輸入類型=提交>

這給你靈活的樣式你的按鈕,無論你想要的方式,並在其中有文字。除此之外,您不必爲創建自定義按鈕並將其發回而苦苦做所有工作。

只是想一想。